diff --git a/cesm/flux_atmocn/shr_flux_mod.F90 b/cesm/flux_atmocn/shr_flux_mod.F90 index 58f7ae923..d86805a5b 100644 --- a/cesm/flux_atmocn/shr_flux_mod.F90 +++ b/cesm/flux_atmocn/shr_flux_mod.F90 @@ -143,7 +143,8 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & & ocn_surface_flux_scheme, & & add_gusts, & & duu10n, & - & ugust_out, & + & ugust_out, & + & u10res, & & ustar_sv ,re_sv ,ssq_sv, & & missval) @@ -194,6 +195,7 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & real(R8),intent(out) :: qref (nMax) ! diag: 2m ref humidity (kg/kg) real(R8),intent(out) :: duu10n(nMax) ! diag: 10m wind speed squared (m/s)^2 real(R8),intent(out) :: ugust_out(nMax) ! diag: gustiness addition to U10 (m/s) + real(R8),intent(out) :: u10res(nMax) ! diag: gustiness addition to U10 (m/s) real(R8),intent(out),optional :: ustar_sv(nMax) ! diag: ustar real(R8),intent(out),optional :: re_sv (nMax) ! diag: sqrt of exchange coefficient (water) @@ -243,6 +245,7 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & real(R8) :: cp ! specific heat of moist air real(R8) :: fac ! vertical interpolation factor real(R8) :: spval ! local missing value + real(R8) :: wind0 ! resolved large-scale 10m wind (no gust added) !!++ COARE only real(R8) :: zo,zot,zoq ! roughness lengths real(R8) :: hsb,hlb ! sens & lat heat flxs at zbot @@ -343,12 +346,13 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & !--- compute some needed quantities --- if (add_gusts) then - vmag = max(seq_flux_atmocn_minwind, sqrt( (ubot(n)-us(n))**2 + (vbot(n)-vs(n))**2) + ugust(min(rainc(n),6.94444e-4_r8)) ) + vmag = max(seq_flux_atmocn_minwind, sqrt( (ubot(n)-us(n))**2 + (vbot(n)-vs(n))**2 + (1.0_R8*ugust(min(rainc(n),6.94444e-4_r8))**2)) ) ugust_out(n) = ugust(min(rainc(n),6.94444e-4_r8)) else vmag = max(seq_flux_atmocn_minwind, sqrt( (ubot(n)-us(n))**2 + (vbot(n)-vs(n))**2) ) ugust_out(n) = 0.0_r8 end if + wind0 = max(seq_flux_atmocn_minwind, sqrt( (ubot(n)-us(n))**2 + (vbot(n)-vs(n))**2) ) if (use_coldair_outbreak_mod) then ! Cold Air Outbreak Modification: @@ -356,10 +360,14 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & ! based on Mahrt & Sun 1995,MWR if (tdiff(n).lt.td0) then + ! if add_gusts wind0 and vmag are different, both need this factor. vscl=min((1._R8+alpha*(abs(tdiff(n)-td0)**0.5_R8/abs(vmag))),maxscl) vmag=vmag*vscl + vscl=min((1._R8+alpha*(abs(tdiff(n)-td0)**0.5_R8/abs(wind0))),maxscl) + wind0=wind0*vscl endif endif + ssq = 0.98_R8 * qsat(ts(n)) / rbot(n) ! sea surf hum (kg/kg) delt = thbot(n) - ts(n) ! pot temp diff (K) delq = qbot(n) - ssq ! spec hum dif (kg/kg) @@ -460,6 +468,7 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & qref(n) = qbot(n) - delq*fac duu10n(n) = u10n*u10n ! 10m wind speed squared + u10res(n) = u10n * (wind0/vmag) ! resolved 10m wind !------------------------------------------------------------ ! optional diagnostics, needed for water tracer fluxes (dcn) @@ -472,6 +481,7 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & !------------------------------------------------------------ ! no valid data here -- out of domain !------------------------------------------------------------ + sen (n) = spval ! sensible heat flux (W/m^2) lat (n) = spval ! latent heat flux (W/m^2) lwup (n) = spval ! long-wave upward heat flux (W/m^2) @@ -484,7 +494,8 @@ SUBROUTINE flux_atmOcn(logunit, nMax ,zbot ,ubot ,vbot ,thbot , & tref (n) = spval ! 2m reference height temperature (K) qref (n) = spval ! 2m reference height humidity (kg/kg) duu10n(n) = spval ! 10m wind speed squared (m/s)^2 - ugust_out(n) = spval ! gustiness addition (m/s) + ugust_out(n) = spval ! gustiness addition (m/s) + u10res(n) = spval ! 10m resolved wind (no gusts) (m/s) if (present(ustar_sv)) ustar_sv(n) = spval if (present(re_sv )) re_sv (n) = spval diff --git a/cime_config/buildexe b/cime_config/buildexe index 1d7366718..4923f016d 100755 --- a/cime_config/buildexe +++ b/cime_config/buildexe @@ -108,10 +108,12 @@ def _main_func(): # always relink if os.path.isfile(exename): os.remove(exename) - + exename = os.path.relpath(exename, bld_root) cmd = "{} exec_se -j {} EXEC_SE={} COMP_NAME=driver {} -f {} "\ .format(gmake, gmake_j, exename, gmake_args, makefile) - + pio = os.environ.get("PIO") + if pio: + os.environ["PIO_LIBDIR"] = os.path.join(pio,"lib") rc, out, err = run_cmd(cmd,from_dir=bld_root) expect(rc==0,"Command {} failed rc={}\nout={}\nerr={}".format(cmd,rc,out,err)) diff --git a/cime_config/config_component_cesm.xml b/cime_config/config_component_cesm.xml index dbf3b11e3..a19814827 100644 --- a/cime_config/config_component_cesm.xml +++ b/cime_config/config_component_cesm.xml @@ -299,6 +299,7 @@ 1 1 + 1 $ATM_NCPL $ATM_NCPL 1 @@ -537,6 +538,7 @@ FALSE TRUE + TRUE TRUE diff --git a/cime_config/namelist_definition_drv.xml b/cime_config/namelist_definition_drv.xml index 3e4d6bf6b..698efb2c9 100644 --- a/cime_config/namelist_definition_drv.xml +++ b/cime_config/namelist_definition_drv.xml @@ -2086,6 +2086,80 @@ + + + + + + logical + aux_hist + ALLCOMP_attributes + + .false. + + Auxiliary mediator wav2med average history output every day. + Note that ww3dev will use this configuration variable and send + the fields needed for wav2med auxiliary file + + + char + aux_hist + MED_attributes + + Sw_hs_avg:Sw_Tm1_avg:Sw_thm_avg:Sw_u_avg:Sw_v_avg:Sw_ustokes_avg:Sw_vstokes_avg:Sw_tusx_avg:Sw_tusy_avg:Sw_thp0_avg:Sw_fp0_avg:Sw_phs0_avg:Sw_phs1_avg:Sw_pdir0_avg:Sw_pdir1_avg:Sw_pTm10_avg:Sw_pTm11_avg + + Auxiliary mediator wav2med file1 colon delimited output + fields. NOTE: these are assumed to be time averaged over a day in + the WW3 cap - so the settings of histaux_wav2med_file1_history_n + and histaux_wav2med_file1_history_option should be 1 and ndays, + respectively. + + + char + aux_hist + MED_attributes + + ndays + + Auxiliary mediator wav2med file1 output option + + + integer + aux_hist + MED_attributes + + 1 + + Auxiliary mediator wav2med file1 output frequency (used for option type) + + + logical + aux_hist + MED_attributes + + .false. + + Auxiliary mediator wav2med file1 time averaged flag for file output. + If this flag is set to .false. only instantaneous output will be created in the auxiliary file. + + + char + aux_hist + MED_attributes + + wav.24h.avg + + + + integer + aux_hist + MED_attributes + Number of time samples per file. + + 30 + + + @@ -2635,24 +2709,6 @@ - - - - - - - - - - - - - - - - - - char time @@ -2874,137 +2930,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cime_config/runseq/driver_config.py b/cime_config/runseq/driver_config.py index 9694c7503..7b8756e10 100644 --- a/cime_config/runseq/driver_config.py +++ b/cime_config/runseq/driver_config.py @@ -58,7 +58,7 @@ def __compute_glc(self, case, coupling_times): med_to_glc = False elif (comp_glc == 'cism'): if not case.get_value("CISM_EVOLVE"): - med_to_glc = False + run_glc = False # If CISM is not evolving only get data back from cism at the initial time # However will still need to call the exchange at the end if the stop_option @@ -77,6 +77,12 @@ def __compute_glc(self, case, coupling_times): glc_coupling_time = stop_n * 86400 else: glc_coupling_time = 86400 + elif (comp_glc == 'dglc'): + glc_coupling_time = coupling_times["glc_cpl_dt"] + stop_option = case.get_value('STOP_OPTION') + stop_n = case.get_value('STOP_N') + if stop_option == 'nsteps': + glc_coupling_time = stop_n*coupling_times["atm_cpl_dt"] elif (comp_glc == 'xglc'): glc_coupling_time = coupling_times["glc_cpl_dt"] else: diff --git a/cime_config/runseq/runseq_TG.py b/cime_config/runseq/runseq_TG.py index dea8aede5..acf56a87b 100644 --- a/cime_config/runseq/runseq_TG.py +++ b/cime_config/runseq/runseq_TG.py @@ -34,8 +34,10 @@ def gen_runseq(case, coupling_times): runseq.add_action ("MED med_phases_post_lnd" , run_lnd) runseq.add_action ("MED med_phases_prep_glc" , med_to_glc) runseq.add_action ("MED -> GLC :remapMethod=redist" , med_to_glc) - runseq.add_action ("GLC" , run_glc and med_to_glc) - runseq.add_action ("GLC -> MED :remapMethod=redist" , run_glc) + runseq.add_action ("GLC" , run_glc) + # Need to do GLC -> MED even if not running GLC; otherwise, we get a + # failure in InitializeRealize ("Object being used before creation") + runseq.add_action ("GLC -> MED :remapMethod=redist" , med_to_glc) runseq.add_action ("MED med_phases_history_write" , True) runseq.leave_time_loop(True) diff --git a/cime_config/runseq/runseq_general.py b/cime_config/runseq/runseq_general.py index ddbfca598..04a0d6f4f 100644 --- a/cime_config/runseq/runseq_general.py +++ b/cime_config/runseq/runseq_general.py @@ -20,7 +20,7 @@ def gen_runseq(case, coupling_times): cpl_seq_option = case.get_value('CPL_SEQ_OPTION') coupling_mode = case.get_value('COUPLING_MODE') diag_mode = case.get_value('BUDGETS') - xcompset = case.get_value("COMP_ATM") == 'xatm' + xcompset = case.get_value("COMP_ATM") == 'xatm' cpl_add_aoflux = not xcompset and case.get_value('ADD_AOFLUX_TO_RUNSEQ') # It is assumed that if a component will be run it will send information to the mediator @@ -35,19 +35,6 @@ def gen_runseq(case, coupling_times): run_rof, med_to_rof, rof_cpl_time = driver_config['rof'] run_wav, med_to_wav, wav_cpl_time = driver_config['wav'] - comp_glc = case.get_value("COMP_GLC") - run_glc = False - post_glc = False - if (comp_glc == 'cism'): - run_glc = True - if case.get_value("CISM_EVOLVE"): - post_glc = True - else: - post_glc = False - elif (comp_glc == 'xglc'): - run_glc = True - post_glc = True - # Note: assume that atm_cpl_dt, lnd_cpl_dt, ice_cpl_dt and wav_cpl_dt are the same if lnd_cpl_time != atm_cpl_time: @@ -59,18 +46,32 @@ def gen_runseq(case, coupling_times): if rof_cpl_time < ocn_cpl_time: expect(False, "assume that rof_cpl_time is always greater than or equal to ocn_cpl_time") + if run_glc: + # It wouldn't make sense to run GLC unless we also do MED -> GLC to transfer fields to GLC, + # and some of the below logic controlling what appears in the run sequence depends on this + # (i.e., depends on the fact that, if run_glc is True, then med_to_glc is also True). + expect(med_to_glc, "if run_glc is True, then med_to_glc must also be True") + rof_outer_loop = run_rof and rof_cpl_time > atm_cpl_time ocn_outer_loop = run_ocn and ocn_cpl_time > atm_cpl_time + # Note that we do some aspects of the GLC outer loop even if run_glc is False + # (as long as med_to_glc is True). + # + # Note that, in contrast to the other outer_loop variables, this doesn't check glc_cpl_time. + # This is for consistency with the logic that was in place before adding this variable; + # this seems to implicitly assume that glc_cpl_time > atm_cpl_time. + glc_outer_loop = med_to_glc + inner_loop = ((atm_cpl_time < ocn_cpl_time) or (atm_cpl_time < rof_cpl_time) or - (run_glc and atm_cpl_time < glc_cpl_time) or + (glc_outer_loop and atm_cpl_time < glc_cpl_time) or atm_cpl_time == ocn_cpl_time) with RunSeq(os.path.join(caseroot, "CaseDocs", "nuopc.runseq")) as runseq: #------------------ - runseq.enter_time_loop(glc_cpl_time, newtime=run_glc, active=med_to_glc) + runseq.enter_time_loop(glc_cpl_time, newtime=glc_outer_loop) #------------------ #------------------ @@ -199,8 +200,10 @@ def gen_runseq(case, coupling_times): runseq.add_action("MED med_phases_prep_glc" , med_to_glc) runseq.add_action("MED -> GLC :remapMethod=redist" , med_to_glc) - runseq.add_action("GLC" , run_glc and med_to_glc) - runseq.add_action("GLC -> MED :remapMethod=redist" , run_glc) - runseq.add_action("MED med_phases_post_glc" , run_glc and post_glc) + runseq.add_action("GLC" , run_glc) + # Need to do GLC -> MED even if not running GLC; otherwise, we get a + # failure in InitializeRealize ("Object being used before creation") + runseq.add_action("GLC -> MED :remapMethod=redist" , med_to_glc) + runseq.add_action("MED med_phases_post_glc" , run_glc) shutil.copy(os.path.join(caseroot, "CaseDocs", "nuopc.runseq"), rundir) diff --git a/mediator/esmFldsExchange_cesm_mod.F90 b/mediator/esmFldsExchange_cesm_mod.F90 index c7cee8d98..b68e4d13f 100644 --- a/mediator/esmFldsExchange_cesm_mod.F90 +++ b/mediator/esmFldsExchange_cesm_mod.F90 @@ -1368,7 +1368,7 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc) end if ! --------------------------------------------------------------------- - ! to atm: unmerged ugust_out from ocn + ! to atm: unmerged ugust_out from ocn ! --------------------------------------------------------------------- if (phase == 'advertise') then call addfld_aoflux('So_ugustOut') @@ -1385,6 +1385,40 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc) end if end if + ! --------------------------------------------------------------------- + ! to atm: 10 m winds including/excluding gust component + ! --------------------------------------------------------------------- + if (phase == 'advertise') then + call addfld_aoflux('So_u10withGust') + call addfld_to(compatm, 'So_u10withGust') + else + if ( fldchk(is_local%wrap%FBexp(compatm), 'So_u10withGust', rc=rc)) then + if (fldchk(is_local%wrap%FBMed_aoflux_o, 'So_u10withGust', rc=rc)) then + if (trim(is_local%wrap%aoflux_grid) == 'ogrid') then + call addmap_aoflux('So_u10withGust', compatm, mapconsf, 'ofrac', ocn2atm_map) + end if + call addmrg_to(compatm , 'So_u10withGust', & + mrg_from=compmed, mrg_fld='So_u10withGust', mrg_type='merge', mrg_fracname='ofrac') + end if + end if + end if + + if (phase == 'advertise') then + call addfld_aoflux('So_u10res') + call addfld_to(compatm, 'So_u10res') + else + if ( fldchk(is_local%wrap%FBexp(compatm), 'So_u10res', rc=rc)) then + if (fldchk(is_local%wrap%FBMed_aoflux_o, 'So_u10res', rc=rc)) then + if (trim(is_local%wrap%aoflux_grid) == 'ogrid') then + call addmap_aoflux('So_u10res', compatm, mapconsf, 'ofrac', ocn2atm_map) + end if + call addmrg_to(compatm , 'So_u10res', & + mrg_from=compmed, mrg_fld='So_u10res', mrg_type='merge', mrg_fracname='ofrac') + end if + end if + end if + + ! --------------------------------------------------------------------- ! to atm: surface snow depth from ice (needed for cam) ! to atm: mean ice volume per unit area from ice @@ -2283,6 +2317,30 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc) end if end if + !----------------------------- + ! from wav: for daily averaged fields for + ! output to auxiliary file only + !----------------------------- + if (phase == 'advertise') then + call addfld_from(compwav, 'Sw_ustokes_avg') + call addfld_from(compwav, 'Sw_vstokes_avg') + call addfld_from(compwav, 'Sw_hs_avg') + call addfld_from(compwav, 'Sw_phs0_avg') + call addfld_from(compwav, 'Sw_phs1_avg') + call addfld_from(compwav, 'Sw_pdir0_avg') + call addfld_from(compwav, 'Sw_pdir1_avg') + call addfld_from(compwav, 'Sw_pTm10_avg') + call addfld_from(compwav, 'Sw_pTm11_avg') + call addfld_from(compwav, 'Sw_Tm1_avg') + call addfld_from(compwav, 'Sw_thm_avg') + call addfld_from(compwav, 'Sw_thp0_avg') + call addfld_from(compwav, 'Sw_fp0_avg') + call addfld_from(compwav, 'Sw_u_avg') + call addfld_from(compwav, 'Sw_v_avg') + call addfld_from(compwav, 'Sw_tusx_avg') + call addfld_from(compwav, 'Sw_tusy_avg') + end if + !----------------------------- ! to ocn: Langmuir multiplier from wave !----------------------------- @@ -2974,22 +3032,36 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc) if (phase == 'advertise') then call addfld_from(compatm, 'Sa_u') call addfld_to(compwav, 'Sa_u') + call addfld_from(compatm, 'Sa_u10m') + call addfld_to(compwav, 'Sa_u10m') else if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_u', rc=rc) .and. & fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_u', rc=rc)) then call addmap_from(compatm, 'Sa_u', compwav, mapbilnr, 'one', atm2wav_map) call addmrg_to(compwav, 'Sa_u', mrg_from=compatm, mrg_fld='Sa_u', mrg_type='copy') end if + if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_u10m', rc=rc) .and. & + fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_u10m', rc=rc)) then + call addmap_from(compatm, 'Sa_u10m', compwav, mapbilnr, 'one', atm2wav_map) + call addmrg_to(compwav, 'Sa_u10m', mrg_from=compatm, mrg_fld='Sa_u10m', mrg_type='copy') + end if end if if (phase == 'advertise') then call addfld_from(compatm, 'Sa_v') call addfld_to(compwav, 'Sa_v') + call addfld_from(compatm, 'Sa_v10m') + call addfld_to(compwav, 'Sa_v10m') else if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_v', rc=rc) .and. & fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_v', rc=rc)) then call addmap_from(compatm, 'Sa_v', compwav, mapbilnr, 'one', atm2wav_map) call addmrg_to(compwav, 'Sa_v', mrg_from=compatm, mrg_fld='Sa_v', mrg_type='copy') end if + if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_v10m', rc=rc) .and. & + fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_v10m', rc=rc)) then + call addmap_from(compatm, 'Sa_v10m', compwav, mapbilnr, 'one', atm2wav_map) + call addmrg_to(compwav, 'Sa_v10m', mrg_from=compatm, mrg_fld='Sa_v10m', mrg_type='copy') + end if end if ! --------------------------------------------------------------------- @@ -3308,6 +3380,25 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc) end if endif + !===================================================================== + ! DMS EXCHANGE + !===================================================================== + + ! Get dms flux from ocn and send to atm + if (phase == 'advertise') then + call addfld_from(compocn, 'Faoo_dms_ocn') + call addfld_to(compatm, 'Faoo_dms_ocn') + else + ! Note that Faoo_dmds should not be weighted by ifrac - since + ! it will be weighted by ifrac in the merge to the atm + if ( fldchk(is_local%wrap%FBImp(compocn,compocn), 'Faoo_dms_ocn', rc=rc) .and. & + fldchk(is_local%wrap%FBexp(compatm) , 'Faoo_dms_ocn', rc=rc)) then + call addmap_from(complnd, 'Faoo_dms_ocn', compocn, mapconsf, 'lfrac', ocn2atm_map) + call addmrg_to(compatm , 'Faoo_dms_ocn', & + mrg_from=compmed, mrg_fld='Faoo_dms_ocn', mrg_type='merge', mrg_fracname='ofrac') + end if + end if + end subroutine esmFldsExchange_cesm end module esmFldsExchange_cesm_mod diff --git a/mediator/fd_cesm.yaml b/mediator/fd_cesm.yaml index eaef1dc78..88b4a5158 100644 --- a/mediator/fd_cesm.yaml +++ b/mediator/fd_cesm.yaml @@ -3,844 +3,938 @@ institution: National ESPC, CSC & MCL Working Groups description: Community-based dictionary for shared coupling fields entries: - # - #----------------------------------- - # section: mediator export for atm/ocn flux calculation - #----------------------------------- - # + # + #----------------------------------- + # Current the following sections are below + # section: fields computed in med + # section: lnd import to med + # section: lnd export from med (computed in med) + # section: atm import to med + # section: atm export from med (computed in med) + # section: glc import to med + # section: glc export from med (computed in med) + # section: ice import to med + # section: ocn import to med + # section: ocn export from med (computed in med) + # section: river import to med + # section: river export from med (computed in med) + # section: wav import to med + #----------------------------------- + # + #----------------------------------- + # section: fields computed in med + #----------------------------------- + # + - standard_name: cpl_scalars + canonical_units: unitless + # + - standard_name: frac + canonical_units: 1 + # + - standard_name: mask + canonical_units: 1 + # + - standard_name: area + canonical_units: radians**2 + description: med area for component + # - standard_name: Faox_evap alias: mean_evap_rate_atm_into_ocn canonical_units: kg m-2 s-1 - description: mediator export - atm/ocn evaporation water flux + description: med export - atm/ocn evaporation water flux computed in medidator # - standard_name: Faox_evap_wiso canonical_units: kg m-2 s-1 - description: mediator export - atm/ocn evaporation water flux 16O, 18O, HDO + description: med export - atm/ocn evaporation water flux 16O, 18O, HDO computed in medidator # - standard_name: Faox_lat alias: mean_laten_heat_flx_atm_into_ocn canonical_units: W m-2 - description: mediator export - atm/ocn surface latent heat flux + description: med export - atm/ocn surface latent heat flux computed in medidator # - standard_name: Faox_sen alias: mean_sensi_heat_flx_atm_into_ocn canonical_units: W m-2 - description: mediator export - atm/ocn surface sensible heat flux + description: med export - atm/ocn surface sensible heat flux computed in medidator # - standard_name: Faox_lwup alias: mean_up_lw_flx_ocn canonical_units: W m-2 - description: mediator export - long wave radiation flux over the ocean + description: med export - ocn long wave radiation flux over the ocean computed in medidator # - standard_name: Faox_taux alias: stress_on_air_ocn_zonal canonical_units: N m-2 - description: mediator export + description: med export - atm/ocn zonal surface stress computed in medidator # - standard_name: Faox_tauy alias: stress_on_air_ocn_merid canonical_units: N m-2 - description: mediator export + description: med export - atm/ocn meridional surface stress computed in medidator # - - standard_name: area - canonical_units: radians**2 - description: mediator area for component + - standard_name: Fwxx_taux + alias: mean_zonal_moment_flx + canonical_units: N m-2 + description: wave import to med - zonal surface stress + # + - standard_name: Fwxx_tauy + alias: mean_merid_moment_flx + canonical_units: N m-2 + description: wave import to med - meridional surface stress # #----------------------------------- - # section: land export + # section: lnd import to med #----------------------------------- # - standard_name: Fall_evap canonical_units: kg m-2 s-1 - description: land export + description: lnd import to med # - standard_name: Fall_evap_wiso canonical_units: kg m-2 s-1 - description: land export + description: lnd import to med # - standard_name: Fall_fco2_lnd canonical_units: moles m-2 s-1 - description: land export + description: lnd import to med # - standard_name: Fall_fire canonical_units: kg/m2/sec - description: land export - wild fire emission fluxes (1->10) + description: lnd import to med - wild fire emission fluxes (1->10) # - standard_name: Fall_flxdst canonical_units: kg m-2 s-1 - description: land export - dust fluxes from land (sizes 1->4) + description: lnd import to med - dust fluxes from lnd (sizes 1->4) # - standard_name: Fall_lat canonical_units: W m-2 - description: land export + description: lnd import to med # - standard_name: Fall_lwup canonical_units: W m-2 - description: land export + description: lnd import to med # - standard_name: Fall_sen canonical_units: W m-2 - description: land export + description: lnd import to med # - standard_name: Fall_swnet canonical_units: W m-2 - description: land export + description: lnd import to med # - standard_name: Fall_taux canonical_units: N m-2 - description: land export + description: lnd import to med # - standard_name: Fall_tauy canonical_units: N m-2 - description: land export + description: lnd import to med # - standard_name: Fall_voc canonical_units: molecules/m2/sec - description: land export - MEGAN voc emission fluxes from land (1->20) + description: lnd import to med - MEGAN voc emission fluxes from lnd (1->20) # - standard_name: Sl_anidf canonical_units: 1 - description: land export + description: lnd import to med # - standard_name: Sl_anidr canonical_units: 1 - description: land export + description: lnd import to med # - standard_name: Sl_avsdf canonical_units: 1 - description: land export + description: lnd import to med # - standard_name: Sl_avsdr canonical_units: 1 - description: land export + description: lnd import to med # - standard_name: Sl_ddvel canonical_units: cm/sec - description: land export - dry deposition velocities from (1->80) + description: lnd import to med - dry deposition velocities from (1->80) # - standard_name: Sl_fv canonical_units: m s-1 - description: land export + description: lnd import to med # - standard_name: Sl_fztop canonical_units: m - description: land export + description: lnd import to med # - standard_name: Sl_lfrac canonical_units: 1 - description: land export + description: lnd import to med # - standard_name: Sl_lfrin canonical_units: 1 - description: land export + description: lnd import to med # - standard_name: Sl_qref canonical_units: kg kg-1 - description: land export + description: lnd import to med # - standard_name: Sl_qref_wiso canonical_units: kg kg-1 - description: land export + description: lnd import to med # - standard_name: Sl_ram1 canonical_units: s/m - description: land export + description: lnd import to med # - standard_name: Sl_snowh canonical_units: m - description: land export + description: lnd import to med # - standard_name: Sl_snowh_wiso canonical_units: m - description: land export + description: lnd import to med # - standard_name: Sl_soilw canonical_units: m3/m3 - description: land export + description: lnd import to med # - standard_name: Sl_t canonical_units: K - description: land export + description: lnd import to med # - - standard_name: Sl_topo_elev - canonical_units: m - description: land export to mediator in elevation classes (1->glc_nec) + - standard_name: Flrl_irrig + canonical_units: kg m-2 s-1 + description: lnd export to river # - - standard_name: Sl_topo + - standard_name: Flrl_rofdto + canonical_units: kg m-2 s-1 + description: lnd export to river + # + - standard_name: Flrl_rofgwl + canonical_units: kg m-2 s-1 + description: lnd export to river + # + - standard_name: Flrl_rofi + canonical_units: kg m-2 s-1 + description: lnd export to river + # + - standard_name: Flrl_rofsub + canonical_units: kg m-2 s-1 + description: lnd export to river + # + - standard_name: Flrl_rofsur + canonical_units: kg m-2 s-1 + description: lnd export to river + # + - standard_name: Sl_topo_elev canonical_units: m - description: mediator export to glc - no levation classes + description: lnd import to med with elevation classes (1->glc_nec) # - standard_name: Sl_tsrf_elev canonical_units: deg C - description: land export to mediator in elevation classes (1->glc_nec) + description: lnd import to med with elevation classes (1->glc_nec) + # + - standard_name: Flgl_qice_elev + canonical_units: kg m-2 s-1 + description: lnd import to med in elevation classes (1->glc_nec) + # + #----------------------------------- + # section: lnd export from med (computed in med) + #----------------------------------- + # + - standard_name: Sl_topo + canonical_units: m + description: lnd export from med with no elevation classes (computed in med) # - standard_name: Sl_tsrf canonical_units: deg C - description: mediator export to gcl with no elevation classes + description: lnd export from med with no elevation classes (computed in med) # - standard_name: Sl_tref canonical_units: K - description: mediator export to glc - no levation classes + description: lnd export from med with no elevation classes (computed in med) # - standard_name: Sl_u10 canonical_units: m - description: land export + description: lnd import to med with no elevation classes (computed in med) + # + - standard_name: Flgl_qice + canonical_units: kg m-2 s-1 + description: lnd export to med no elevation classes (computed in med) # #----------------------------------- - # section: atmosphere export + # section: atm import to med #----------------------------------- # - standard_name: Faxa_nhx canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_noy canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_bcph canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_ocph canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_dstdry canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_dstwet canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_swdn alias: mean_down_sw_flx canonical_units: W m-2 - description: atmosphere export + description: atm import to med mean downward SW heat flux # - standard_name: Faxa_lwdn alias: mean_down_lw_flx canonical_units: W m-2 - description: atmosphere export + description: atm import to med mean downward SW heat flux # - standard_name: Faxa_ndep canonical_units: kg(N)/m2/sec - description: atmosphere export to land and ocean - currently nhx and noy + description: atm import to med - currently nhx and noy # - standard_name: Faxa_prec_wiso canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_rain alias: mean_prec_rate canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_rain_wiso alias: mean_prec_rate_wiso canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_rainc canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_rainc_wiso canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_rainl canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_rainl_wiso canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_snow alias: mean_fprec_rate canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_snow_wiso canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_snowc canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_snowc_wiso canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_snowl canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_snowl_wiso canonical_units: kg m-2 s-1 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_swnet canonical_units: W m-2 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_lwnet canonical_units: W m-2 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_swndf alias: mean_down_sw_ir_dif_flx canonical_units: W m-2 - description: atmosphere export - mean surface downward nir diffuse flux + description: atm import to med - mean surface downward nir diffuse flux # - standard_name: Faxa_swndr alias: mean_down_sw_ir_dir_flx canonical_units: W m-2 - description: atmosphere export - mean surface downward nir direct flux + description: atm import to med - mean surface downward nir direct flux # - standard_name: Faxa_swvdf alias: mean_down_sw_vis_dif_flx canonical_units: W m-2 - description: atmosphere export - mean surface downward uv+vis diffuse flux + description: atm import to med - mean surface downward uv+vis diffuse flux # - standard_name: Faxa_swvdr alias: mean_down_sw_vis_dir_flx canonical_units: W m-2 - description: atmosphere export - mean surface downward uv+visvdirect flux + description: atm import to med - mean surface downward uv+visvdirect flux # - standard_name: Sa_co2diag canonical_units: 1e-6 mol/mol - description: atmosphere export - diagnostic CO2 at the lowest model level + description: atm import to med - diagnostic CO2 at the lowest model level # - standard_name: Sa_co2prog canonical_units: 1e-6 mol/mol - description: atmosphere export - prognostic CO2 at the lowest model level + description: atm import to med - prognostic CO2 at the lowest model level # - standard_name: Sa_o3 canonical_units: mol/mol - description: atmosphere export - O3 in the lowest model layer (prognosed or prescribed) + description: atm import to med - O3 in the lowest model layer (prognosed or prescribed) # - standard_name: Sa_lightning canonical_units: /min - description: atmosphere export - lightning flash freqency + description: atm import to med - lightning flash freqency # - standard_name: Sa_topo alias: inst_surface_height canonical_units: m - description: atmosphere export - topographic height + description: atm import to med - topographic height # - standard_name: Sa_dens alias: air_density_height_lowest canonical_units: kg m-3 - description: atmosphere export - density at the lowest model layer + description: atm import to med - density at the lowest model layer # - standard_name: Sa_pbot alias: inst_pres_height_lowest canonical_units: Pa - description: atmosphere export - pressure at lowest model layer + description: atm import to med - pressure at lowest model layer # - standard_name: Sa_pslv alias: inst_pres_height_surface canonical_units: Pa - description: atmosphere export + description: atm import to med # - standard_name: Sa_ptem canonical_units: K - description: atmosphere export - bottom layer potential temperature + description: atm import to med - bottom layer potential temperature # - standard_name: Sa_shum alias: inst_spec_humid_height_lowest canonical_units: kg kg-1 - description: atmosphere export - bottom layer specific humidity + description: atm import to med - bottom layer specific humidiaty # - standard_name: Sa_shum_wiso alias: inst_spec_humid_height_lowest_wiso canonical_units: kg kg-1 - description: atmosphere export - bottom layer specific humidity 16O, 18O, HDO + description: atm import to med - bottom layer specific humidity 16O, 18O, HDO # - standard_name: Sa_tbot alias: inst_temp_height_lowest canonical_units: K - description: atmosphere export - bottom layer temperature + description: atm import to med - bottom layer temperature # - standard_name: Sa_tskn alias: inst_temp_skin_temperature canonical_units: K - description: atmosphere export - sea surface skin temperature + description: atm import to med - sea surface skin temperature # - standard_name: Sa_u alias: inst_zonal_wind_height_lowest canonical_units: m s-1 - description: atmosphere export - bottom layer zonal wind + description: atm import to med - bottom layer zonal wind # - standard_name: Sa_v alias: inst_merid_wind_height_lowest canonical_units: m s-1 - description: atmosphere export - bottom layer meridional wind + description: atm import to med - bottom layer meridional wind + # + - standard_name: Sa_u10m + canonical_units: m s-1 + description: atm import to med - 10m zonal wind + # + - standard_name: Sa_v10m + canonical_units: m s-1 + description: atm import to med- 10m meridional wind # - standard_name: Sa_wspd alias: inst_wind_speed_height_lowest canonical_units: m s-1 - description: atmosphere export - bottom layer wind speed + description: atm import to med - bottom layer wind speed # - standard_name: Sa_z alias: inst_height_lowest canonical_units: m - description: atmosphere export - bottom layer height + description: atm import to med - bottom layer height # - standard_name: Faxa_taux alias: mean_zonal_moment_flx_atm canonical_units: N m-2 - description: atmosphere export - zonal component of momentum flux + description: atm import to med - zonal component of momentum flux # - standard_name: Faxa_tauy alias: mean_merid_moment_flx_atm canonical_units: N m-2 - description: atmosphere export - meridional component of momentum flux + description: atm import to med - meridional component of momentum flux # - standard_name: Faxa_lat alias: mean_laten_heat_flx_atm canonical_units: W m-2 - description: atmosphere export + description: atm import to med # - standard_name: Faxa_sen alias: mean_sensi_heat_flx_atm canonical_units: W m-2 - description: atmosphere export + description: atm import to med # #----------------------------------- - # section: atmosphere import + # section: atm export from med (computed in med) #----------------------------------- # - standard_name: Faxx_evap canonical_units: kg m-2 s-1 - description: to atm merged water evaporation flux + description: atm export from meditor - merged water evaporation flux # - standard_name: Faxx_evap_wiso canonical_units: kg m-2 s-1 - description: to atm merged water evaporation flux for 16O, 18O and HDO + description: atm export from med - merged water evaporation flux for 16O, 18O and HDO # - standard_name: Faxx_lat alias: mean_laten_heat_flx canonical_units: W m-2 - description: to to atm merged latent heat flux + description: atm export from med - merged latent heat flux # - standard_name: Faxx_lwup canonical_units: W m-2 - description: to atm merged outgoing longwave radiation + description: atm export from med - merged outgoing longwave radiation # - standard_name: Faxx_sen alias: mean_sensi_heat_flx canonical_units: W m-2 - description: to atm merged sensible heat flux + description: atm export from med - merged sensible heat flux # - standard_name: Faxx_taux alias: mean_zonal_moment_flx canonical_units: N m-2 - description: to atm merged zonal surface stress + description: atm export from med - merged zonal surface stress # - standard_name: Faxx_tauy alias: mean_merid_moment_flx canonical_units: N m-2 - description: to atm merged meridional surface stress + description: atm export from med - merged meridional surface stress # - standard_name: Sx_anidf canonical_units: 1 - description: atmosphere import - description: to atm merged surface diffuse albedo (near-infrared radiation) + description: atm export from med - merged surface diffuse albedo (near-infrared radiation) # - standard_name: Sx_anidr canonical_units: 1 - description: to atm merged direct surface albedo (near-infrared radiation) + description: atm export from med - merged direct surface albedo (near-infrared radiation) # - standard_name: Sx_avsdf canonical_units: 1 - description: to atm merged surface diffuse albedo (visible radation) + description: atm export from med - merged surface diffuse albedo (visible radation) # - standard_name: Sx_avsdr canonical_units: 1 - description: to atm merged direct surface albedo (visible radiation) + description: atm export from med - merged direct surface albedo (visible radiation) # - standard_name: Sx_qref canonical_units: kg kg-1 - description: atmosphere import + description: atm export from med # - standard_name: Sx_qref_wiso canonical_units: kg kg-1 - description: atmosphere import + description: atm export from med # - standard_name: Sx_t alias: surface_temperature canonical_units: K - description: atmosphere import + description: atm export from med # - standard_name: Sx_tref canonical_units: K - description: atmosphere import + description: atm export from med # - standard_name: Sx_u10 canonical_units: m - description: atmosphere import + description: atm export from med # - standard_name: So_ugustOut canonical_units: m/s - description: atmosphere import + description: atm export from med + # + - standard_name: So_u10withGust + canonical_units: m/s + description: atm export from med + # + - standard_name: So_u10res + canonical_units: m/s + description: atm export from med # #----------------------------------- - # section: land-ice export + # section: glc import to med + #----------------------------------- + # # Note that the fields sent from glc->med do NOT have elevation classes, # but the fields from med->lnd are broken into multiple elevation classes - #----------------------------------- # - standard_name: Figg_rofi canonical_units: kg m-2 s-1 - description: land-ice export - glc frozen runoff_iceberg flux to ice + description: glc import to med - glc frozen runoff_iceberg flux to ice # - standard_name: Figg_rofi_wiso canonical_units: kg m-2 s-1 - description: land-ice export - glc frozen runoff_iceberg flux to ice for 16O, 18O, HDO + description: glc import to med - glc frozen runoff_iceberg flux to ice for 16O, 18O, HDO # - standard_name: Flgg_hflx canonical_units: W m-2 - description: land-ice export to mediator (no elevation classes) - Downward heat flux from glacier interior, from mediator, elev class 0 - # - - standard_name: Flgg_hflx_elev - canonical_units: W m-2 - description: mediator land-ice export to lnd (elevation classes 1->glc_nec) - Downward heat flux from glacier interior, from mediator, elev class 1->glc_nec + description: glc import to med to med (no elevation classes) + Downward heat flux from glacier interior, from med, elev class 0 # - standard_name: Sg_area canonical_units: area internal to the CISM grid in radians**2 - description: land-ice export to mediator (no elevation classes) + description: glc import to med to med (no elevation classes) # - standard_name: Sg_ice_covered canonical_units: 1 - description: land-ice export to mediator (no elevation classes) - # - - standard_name: Sg_ice_covered_elev - canonical_units: 1 - description: mediator land-ice export to lnd (elevation classes 1->glc_nec) + description: glc import to med (no elevation classes) # - standard_name: Sg_icemask canonical_units: 1 - description: land-ice export + description: glc import to med # - standard_name: Sg_icemask_coupled_fluxes canonical_units: 1 - description: land-ice export + description: glc import to med # - standard_name: Sg_topo canonical_units: m - description: land-ice export to mediator (no elevation classes) + description: glc import to med (no elevation classes) + # + #----------------------------------- + # section: glc export from med (computed in med) + #----------------------------------- + # + - standard_name: Flgg_hflx_elev + canonical_units: W m-2 + description: glc export from med (elevation classes 1->glc_nec) + Downward heat flux from glacier interior, from med, elev class 1->glc_nec + # + - standard_name: Sg_ice_covered_elev + canonical_units: 1 + description: glc export from med (elevation classes 1->glc_nec) # - standard_name: Sg_topo_elev canonical_units: m - description: mediator land-ice export to lnd (elevation classes 1->glc_nec) + description: glc export from med (elevation classes 1->glc_nec) # - standard_name: Fogg_rofi canonical_units: kg m-2 s-1 - description: land-ice export - glacier_frozen_runoff_flux_to_ocean + description: glc export from med - glacier_frozen_runoff_flux_to_ocean # - standard_name: Fogg_rofi_wiso canonical_units: kg m-2 s-1 - description: land-ice export - glacier_frozen_runoff_flux_to_ocean for 16O, 18O, HDO + description: glc export from med - glacier_frozen_runoff_flux_to_ocean for 16O, 18O, HDO # - standard_name: Fogg_rofl canonical_units: kg m-2 s-1 - description: land-ice export - glacier liquid runoff flux to ocean + description: glc export from med - glacier liquid runoff flux to ocean # - standard_name: Fogg_rofl_wiso canonical_units: kg m-2 s-1 - description: land-ice export - glacier_frozen_runoff_flux_to_ocean for 16O, 18O, HDO + description: glc export from med - glacier_frozen_runoff_flux_to_ocean for 16O, 18O, HDO # #----------------------------------- - # section: sea-ice export + # section: ice import to med #----------------------------------- # - standard_name: Faii_evap alias: mean_evap_rate_atm_into_ice canonical_units: kg m-2 s-1 - description: sea-ice export + description: ice import to med # - standard_name: Faii_evap_wiso canonical_units: kg m-2 s-1 - description: sea-ice export for 16O, 18O, HDO + description: ice import to med for 16O, 18O, HDO # - standard_name: Faii_lat alias: mean_laten_heat_flx_atm_into_ice canonical_units: W m-2 - description: sea-ice export to atm - atm/ice latent heat flux + description: ice import to med - atm/ice latent heat flux # - standard_name: Faii_sen alias: mean_sensi_heat_flx_atm_into_ice canonical_units: W m-2 - description: sea-ice export to atm - atm/ice sensible heat flux + description: ice import to med - atm/ice sensible heat flux # - standard_name: Faii_lwup alias: mean_up_lw_flx_ice canonical_units: W m-2 - description: sea-ice export -outgoing logwave radiation + description: ice import to med -outgoing logwave radiation # - standard_name: Faii_swnet canonical_units: W m-2 - description: sea-ice export to atm + description: ice import to med to atm # - standard_name: Faii_taux alias: stress_on_air_ice_zonal canonical_units: N m-2 - description: sea-ice export to atm - air ice zonal stress + description: ice import to med - air ice zonal stress # - standard_name: Faii_tauy alias: stress_on_air_ice_merid canonical_units: N m-2 - description: sea-ice export - air ice meridional stress + description: ice import to med - air ice meridional stress # - standard_name: Fioi_bcphi canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - hydrophilic black carbon flux to ocean + description: ice import to med to ocean - hydrophilic black carbon flux to ocean # - standard_name: Fioi_bcpho canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - hydrophobic black carbon flux to ocean + description: ice import to med to ocean - hydrophobic black carbon flux to ocean # - standard_name: Fioi_flxdst canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - dust aerosol flux to ocean + description: ice import to med to ocean - dust aerosol flux to ocean # - standard_name: Fioi_melth alias: net_heat_flx_to_ocn canonical_units: W m-2 - description: sea-ice export to ocean - net heat flux to ocean + description: ice import to med to ocean - net heat flux to ocean # - standard_name: Fioi_melth_wiso canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - isotope head flux to ocean for 16O, 18O, HDO + description: ice import to med to ocean - isotope head flux to ocean for 16O, 18O, HDO # - standard_name: Fioi_melth_HDO canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - isotope head flux to ocean + description: ice import to med to ocean - isotope head flux to ocean # - standard_name: Fioi_meltw alias: mean_fresh_water_to_ocean_rate canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - fresh water to ocean (h2o flux from melting) + description: ice import to med to ocean - fresh water to ocean (h2o flux from melting) # - standard_name: Fioi_meltw_wiso alias: mean_fresh_water_to_ocean_rate_wiso canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - fresh water to ocean (h2o flux from melting) for 16O, 18O, HDO + description: ice import to med to ocean - fresh water to ocean (h2o flux from melting) for 16O, 18O, HDO # - standard_name: Fioi_salt alias: mean_salt_rate canonical_units: kg m-2 s-1 - description: sea-ice export to ocean - salt to ocean (salt flux from melting) + description: ice import to med - salt to ocean (salt flux from melting) # - standard_name: Fioi_swpen alias: mean_sw_pen_to_ocn canonical_units: W m-2 - description: sea-ice export to ocean - flux of shortwave through ice to ocean + description: ice import to med - flux of shortwave through ice to ocean # - standard_name: Fioi_swpen_vdr alias: mean_sw_pen_to_ocn_vis_dir_flx canonical_units: W m-2 - description: sea-ice export to ocean - flux of vis dir shortwave through ice to ocean + description: ice import to med - flux of vis dir shortwave through ice to ocean # - standard_name: Fioi_swpen_vdf alias: mean_sw_pen_to_ocn_vis_dif_flx canonical_units: W m-2 - description: sea-ice export to ocean - flux of vif dir shortwave through ice to ocean + description: ice import to med - flux of vif dir shortwave through ice to ocean # - standard_name: Fioi_swpen_idr alias: mean_sw_pen_to_ocn_ir_dir_flx canonical_units: W m-2 - description: sea-ice export to ocean - flux of ir dir shortwave through ice to ocean + description: ice import to med - flux of ir dir shortwave through ice to ocean # - standard_name: Fioi_swpen_idf alias: mean_sw_pen_to_ocn_ir_dif_flx canonical_units: W m-2 - description: sea-ice export to ocean - flux of ir dif shortwave through ice to ocean + description: ice import to med - flux of ir dif shortwave through ice to ocean # - standard_name: Fioi_taux alias: stress_on_ocn_ice_zonal canonical_units: N m-2 - description: sea-ice export to ocean - ice ocean zonal stress + description: ice import to med - ice ocean zonal stress # - standard_name: Fioi_tauy alias: stress_on_ocn_ice_merid canonical_units: N m-2 - description: sea-ice export to ocean - ice ocean meridional stress + description: ice import to med - ice ocean meridional stress # - standard_name: Si_anidf alias: inst_ice_ir_dif_albedo canonical_units: 1 - description: sea-ice export to atm + description: ice import to med # - standard_name: Si_anidr alias: inst_ice_ir_dir_albedo canonical_units: 1 - description: sea-ice export to atm + description: ice import to med # - standard_name: Si_avsdf alias: inst_ice_vis_dif_albedo canonical_units: 1 - description: sea-ice export to atm + description: ice import to med # - standard_name: Si_avsdr alias: inst_ice_vis_dir_albedo canonical_units: 1 - description: sea-ice export to atm + description: ice import to med # - standard_name: Si_ifrac alias: ice_fraction canonical_units: 1 - description: sea-ice export to atm - ice fraction (varies with time) + description: ice import to med - ice fraction (varies with time) # - standard_name: Si_ifrac_n alias: ice_fraction_n canonical_units: 1 - description: sea-ice export - ice fraction per category (varies with time) + description: ice import to med - ice fraction per category (varies with time) # - standard_name: Si_imask alias: ice_mask canonical_units: 1 - description: sea-ice export - ice mask + description: ice import to med - ice mask # - standard_name: Si_qref canonical_units: kg kg-1 - description: sea-ice export to atm + description: ice import to med # - standard_name: Si_qref_wiso canonical_units: kg kg-1 - description: sea-ice export to atm + description: ice import to med # - standard_name: Si_t alias: sea_ice_surface_temperature canonical_units: K - description: sea-ice export + description: ice import to med # - standard_name: Si_tref canonical_units: K - description: sea-ice export + description: ice import to med # - standard_name: Si_u10 canonical_units: m - description: sea-ice export + description: ice import to med # - standard_name: Si_vice alias: mean_ice_volume canonical_units: m - description: sea-ice export - volume of ice per unit area + description: ice import to med - volume of ice per unit area # - standard_name: Si_snowh canonical_units: m - description: sea-ice export - surface_snow_water_equivalent + description: ice import to med - surface_snow_water_equivalent # - standard_name: Si_vsno alias: mean_snow_volume canonical_units: m - description: sea-ice export - volume of snow per unit area + description: ice import to med - volume of snow per unit area # - standard_name: Si_thick canonical_units: m - description: sea-ice export - ice thickness + description: ice import to med - ice thickness # - standard_name: Si_floediam canonical_units: m - description: sea-ice export - ice floe diameter + description: ice import to med - ice floe diameter # #----------------------------------- - # section: ocean export to mediator + # section: ocn import to med #----------------------------------- # - standard_name: Fioo_q alias: freezing_melting_potential canonical_units: W m-2 - description: ocean export + description: ocn import to med # - standard_name: Faoo_fco2_ocn canonical_units: moles m-2 s-1 - description: ocean export + description: ocn import to med + # + - standard_name: Faoo_dms_ocn + canonical_units: moles m-2 s-1 + description: ocn import to med - surface flux of DMS (downward positive) # - standard_name: So_anidf canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_anidr canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_avsdf canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_avsdr canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_bldepth alias: mixed_layer_depth canonical_units: m - description: ocean export + description: ocn import to med # - standard_name: So_dhdx alias: sea_surface_slope_zonal canonical_units: m m-1 - description: ocean export + description: ocn import to med # - standard_name: So_dhdy alias: sea_surface_slope_merid canonical_units: m m-1 - description: ocean export + description: ocn import to med # - standard_name: So_duu10n canonical_units: m2 s-2 - description: ocean export + description: ocn import to med # - standard_name: So_fswpen canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_ofrac canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_omask alias: ocean_mask canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_qref canonical_units: kg kg-1 - description: ocean export + description: ocn import to med # - standard_name: So_qref_wiso canonical_units: kg kg-1 - description: ocean export + description: ocn import to med # - standard_name: So_re canonical_units: 1 - description: ocean export + description: ocn import to med # - standard_name: So_qref_wiso canonical_units: kg kg-1 - description: ocean export + description: ocn import to med # - standard_name: So_roce_wiso canonical_units: unitless - description: ocean export + description: ocn import to med # - standard_name: So_s alias: s_surf canonical_units: g kg-1 - description: ocean export + description: ocn import to med # - standard_name: So_s_depth alias: s_surf_depths @@ -849,12 +943,12 @@ # - standard_name: So_ssq canonical_units: kg kg-1 - description: ocean export + description: ocn import to med # - standard_name: So_t alias: sea_surface_temperature canonical_units: K - description: ocean export + description: ocn import to med # - standard_name: So_t_depth alias: sea_surface_temperature_depths @@ -863,292 +957,256 @@ # - standard_name: So_tref canonical_units: K - description: ocean export + description: ocn import to med # - standard_name: So_u alias: ocn_current_zonal canonical_units: m s-1 - description: ocean export + description: ocn import to med # - standard_name: So_u10 canonical_units: m - description: ocean export + description: ocn import to med # - standard_name: So_ustar canonical_units: m s-1 - description: ocean export + description: ocn import to med # - standard_name: So_v alias: ocn_current_merid canonical_units: m s-1 - description: ocean export - # - #----------------------------------- - # section: river export - #----------------------------------- - # - - standard_name: Firr_rofi - canonical_units: kg m-2 s-1 - description: river export - water flux into sea ice due to runoff (frozen) - # - - standard_name: Firr_rofi_wiso - canonical_units: kg m-2 s-1 - description: river export - water flux into sea ice due to runoff (frozen) for 16O, 18O, HDO - # - - standard_name: Fixx_rofi - canonical_units: kg m-2 s-1 - description: frozen runoff to ice from river and land-ice - # - - standard_name: Fixx_rofi_wiso - canonical_units: kg m-2 s-1 - description: frozen runoff to ice from river and land-ice for 16O, 18O, HDO - # - #----------------------------------- - # section: lnd export to glc - #----------------------------------- - # - - standard_name: Flgl_qice - canonical_units: kg m-2 s-1 - description: mediator export to glc no elevation classes - # - - standard_name: Flgl_qice_elev - canonical_units: kg m-2 s-1 - description: land export to mediator in elevation classes (1->glc_nec) - # - #----------------------------------- - # section: lnd export to river - #----------------------------------- - # - - standard_name: Flrl_irrig - canonical_units: kg m-2 s-1 - description: land export to river - # - - standard_name: Flrl_rofdto - canonical_units: kg m-2 s-1 - description: land export to river - # - - standard_name: Flrl_rofgwl - canonical_units: kg m-2 s-1 - description: land export to river - # - - standard_name: Flrl_rofi - canonical_units: kg m-2 s-1 - description: land export to river - # - - standard_name: Flrl_rofsub - canonical_units: kg m-2 s-1 - description: land export to river - # - - standard_name: Flrl_rofsur - canonical_units: kg m-2 s-1 - description: land export to river + description: ocn import to med # #----------------------------------- - # section: river export - #----------------------------------- - # - - standard_name: Flrr_flood - canonical_units: kg m-2 s-1 - description: river export to land - water flux due to flooding - # - - standard_name: Flrr_flood_wiso - canonical_units: kg m-2 s-1 - description: river export to land - water flux due to flooding for 16O, 18O, HDO - # - - standard_name: Flrr_volr - canonical_units: m - description: river export to land - river channel total water volume - # - - standard_name: Flrr_volr_wiso - canonical_units: m - description: river export to land - river channel total water volume from 16O, 18O, HDO - # - - standard_name: Flrr_volrmch - canonical_units: m - description: river export to land - river channel main channel water volume - # - - standard_name: Flrr_volrmch_wiso - canonical_units: m - description: river export to land - river channel main channel water volume from 16O, 18O, HDO - # - - standard_name: Sr_tdepth - canonical_units: m - description: river export to land - tributary channel water depth - # - - standard_name: Sr_tdepth_max - canonical_units: m - description: river export to land - tributary channel bankfull depth - # - - standard_name: Forr_rofi - canonical_units: kg m-2 s-1 - description: river export to ocean - water flux due to runoff (frozen) - # - - standard_name: Forr_rofi_wiso - canonical_units: kg m-2 s-1 - description: river export to ocean - water flux due to runoff (frozen) for 16O, 18O, HDO - # - - standard_name: Forr_rofl - canonical_units: kg m-2 s-1 - description: river export to ocean - water flux due to runoff (liquid) - # - - standard_name: Forr_rofl_wiso - canonical_units: kg m-2 s-1 - description: river export to ocean - water flux due to runoff (frozen) for 16O, 18O, HDO - # - #----------------------------------- - # section: ocean import + # section: ocn export from med (computed in med) #----------------------------------- # - standard_name: Foxx_hrain alias: heat_content_lprec canonical_units: W m-2 - description: to ocn heat content of rain + description: med export to ocn heat content of rain # - standard_name: Foxx_hsnow alias: heat_content_fprec canonical_units: W m-2 - description: to ocn heat content of snow + description: med export to ocn heat content of snow # - standard_name: Foxx_hevap alias: heat_content_evap canonical_units: W m-2 - description: to ocn heat content of evaporation + description: med export to ocn heat content of evaporation # - standard_name: Foxx_hcond alias: heat_content_cond canonical_units: W m-2 - description: to ocn heat content of condensation + description: med export to ocn heat content of condensation # - standard_name: Foxx_hrofl alias: heat_content_rofl canonical_units: W m-2 - description: to ocn heat content of liquid runoff + description: med export to ocn heat content of liquid runoff # - standard_name: Foxx_hrofi alias: heat_content_rofi canonical_units: W m-2 - description: to ocn heat content of ice runoff + description: med export to ocn heat content of ice runoff # - standard_name: Foxx_evap alias: mean_evap_rate canonical_units: kg m-2 s-1 - description: ocean import - specific humidity flux + description: med export to ocn - specific humidity flux # - standard_name: Foxx_evap_wiso alias: mean_evap_rate_wiso canonical_units: kg m-2 s-1 - description: ocean import - specific humidity flux 16O, 18O, HDO + description: med export to ocn - specific humidity flux 16O, 18O, HDO # - standard_name: Foxx_lat canonical_units: W m-2 - description: ocean import - latent heat flux into ocean + description: med export to ocn - latent heat flux into ocean # - standard_name: Foxx_lat_wiso canonical_units: W m-2 - description: ocean import - latent heat flux into ocean for 16O, 18O, HDO + description: med export to ocn - latent heat flux into ocean for 16O, 18O, HDO # - standard_name: Foxx_lat canonical_units: W m-2 - description: ocean import - latent heat flux into ocean for HDO + description: med export to ocn - latent heat flux into ocean for HDO # - standard_name: Foxx_sen alias: mean_sensi_heat_flx canonical_units: W m-2 - description: ocean import - sensible heat flux into ocean + description: med export to ocn - sensible heat flux into ocean # - standard_name: Foxx_lwup canonical_units: W m-2 - description: ocean import - surface upward longwave heat flux + description: med export to ocn - surface upward longwave heat flux # - standard_name: Foxx_lwnet alias: mean_net_lw_flx canonical_units: W m-2 - description: ocean import - mean NET long wave radiation flux to ocean + description: med export to ocn - mean NET long wave radiation flux to ocean # - standard_name: mean_runoff_rate canonical_units: kg m-2 s-1 - description: ocean import - total runoff to ocean + description: med export to ocn - total runoff to ocean # - standard_name: mean_runoff_heat_flux canonical_units: kg m-2 s-1 - description: ocean import - heat content of runoff + description: med export to ocn - heat content of runoff # - standard_name: mean_calving_rate canonical_units: kg m-2 s-1 - description: ocean import - total calving to ocean + description: med export to ocn - total calving to ocean # - standard_name: mean_calving_heat_flux canonical_units: kg m-2 s-1 - description: ocean import - heat content of calving + description: med export to ocn - heat content of calving # - standard_name: Foxx_rofi canonical_units: kg m-2 s-1 - description: ocean import - water flux due to runoff (frozen) + description: med export to ocn - water flux due to runoff (frozen) # - standard_name: Foxx_rofi_wiso canonical_units: kg m-2 s-1 - description: ocean import - water flux due to runoff (frozen) for 16O, 18O, HDO + description: med export to ocn - water flux due to runoff (frozen) for 16O, 18O, HDO # - standard_name: Foxx_rofl alias: mean_runoff_rate canonical_units: kg m-2 s-1 - description: ocean import - water flux due to runoff (liquid) + description: med export to ocn - water flux due to runoff (liquid) # - standard_name: Foxx_rofl_wiso canonical_units: kg m-2 s-1 - description: ocean import - water flux due to runoff (liquid) for 16O, 18O, HDO + description: med export to ocn - water flux due to runoff (liquid) for 16O, 18O, HDO # - standard_name: Foxx_swnet alias: mean_net_sw_flx canonical_units: W m-2 - description: ocean import - net shortwave radiation to ocean + description: med export to ocn - net shortwave radiation to ocean # - standard_name: Foxx_swnet_vdr alias: mean_net_sw_vis_dir_flx canonical_units: W m-2 - description: ocean import - net shortwave visible direct radiation to ocean + description: med export to ocn - net shortwave visible direct radiation to ocean # - standard_name: Foxx_swnet_vdf alias: mean_net_sw_vis_dif_flx canonical_units: W m-2 - description: ocean import - net shortwave visible diffuse radiation to ocean + description: med export to ocn - net shortwave visible diffuse radiation to ocean # - standard_name: Foxx_swnet_idr alias: mean_net_sw_ir_dir_flx canonical_units: W m-2 - description: ocean import - net shortwave ir direct radiation to ocean + description: med export to ocn - net shortwave ir direct radiation to ocean # - standard_name: Foxx_swnet_idf alias: mean_net_sw_ir_dif_flx canonical_units: W m-2 - description: ocean import - net shortwave ir diffuse radiation to ocean + description: med export to ocn - net shortwave ir diffuse radiation to ocean # - standard_name: Foxx_swnet_afracr canonical_units: W m-2 - description: ocean import - net shortwave radiation times atmosphere fraction + description: med export to ocn - net shortwave radiation times atmosphere fraction # - standard_name: Foxx_taux alias: mean_zonal_moment_flx canonical_units: N m-2 - description: ocean import - zonal surface stress + description: med export to ocn - zonal surface stress # - standard_name: Foxx_tauy alias: mean_merid_moment_flx canonical_units: N m-2 - description: ocean import - meridional surface stress + description: med export to ocn - meridional surface stress # - standard_name: Fioi_swpen_ifrac_n alias: mean_sw_pen_to_ocn_ifrac_n canonical_units: W m-2 - description: ocean import - net shortwave radiation penetrating into ice and ocean times ice fraction for thickness category 1 + description: med export to ocn - net shortwave radiation penetrating into ice and ocean times ice fraction for thickness category 1 # - standard_name: Sf_afrac canonical_units: 1 - description: ocean import - fractional atmosphere coverage wrt ocean + description: med export to ocn - fractional atmosphere coverage wrt ocean # - standard_name: Sf_afracr canonical_units: 1 - description: ocean import - fractional atmosphere coverage used in radiation computations wrt ocean + description: med export to ocn - fractional atmosphere coverage used in radiation computations wrt ocean + # + #----------------------------------- + # section: river import to med + #----------------------------------- + # + - standard_name: Flrr_flood + canonical_units: kg m-2 s-1 + description: river import to med - water flux due to flooding + # + - standard_name: Flrr_flood_wiso + canonical_units: kg m-2 s-1 + description: river import to med - water flux due to flooding for 16O, 18O, HDO + # + - standard_name: Flrr_volr + canonical_units: m + description: river import to med - river channel total water volume + # + - standard_name: Flrr_volr_wiso + canonical_units: m + description: river import to med - river channel total water volume from 16O, 18O, HDO + # + - standard_name: Flrr_volrmch + canonical_units: m + description: river import to med - river channel main channel water volume + # + - standard_name: Flrr_volrmch_wiso + canonical_units: m + description: river import to med - river channel main channel water volume from 16O, 18O, HDO + # + - standard_name: Sr_tdepth + canonical_units: m + description: river import to med - tributary channel water depth + # + - standard_name: Sr_tdepth_max + canonical_units: m + description: river import to med - tributary channel bankfull depth + # + - standard_name: Forr_rofi + canonical_units: kg m-2 s-1 + description: river export to ocean - water flux due to runoff (frozen) + # + - standard_name: Forr_rofi_wiso + canonical_units: kg m-2 s-1 + description: river import to med - water flux due to runoff (frozen) for 16O, 18O, HDO + # + - standard_name: Forr_rofl + canonical_units: kg m-2 s-1 + description: river import to med - water flux due to runoff (liquid) + # + - standard_name: Forr_rofl_wiso + canonical_units: kg m-2 s-1 + description: river import to med - water flux due to runoff (frozen) for 16O, 18O, HDO + # + - standard_name: Firr_rofi + canonical_units: kg m-2 s-1 + description: river export - water flux into sea ice due to runoff (frozen) + # + - standard_name: Firr_rofi_wiso + canonical_units: kg m-2 s-1 + description: river export - water flux into sea ice due to runoff (frozen) for 16O, 18O, HDO + # + #----------------------------------- + # section: river export from med (computed in med) + #----------------------------------- + # + - standard_name: Fixx_rofi + canonical_units: kg m-2 s-1 + description: frozen runoff to ice from river and lnd-ice + # + - standard_name: Fixx_rofi_wiso + canonical_units: kg m-2 s-1 + description: frozen runoff to ice from river and lnd-ice for 16O, 18O, HDO + # + #----------------------------------- + # section: wav import to med + #----------------------------------- # - standard_name: Sw_hstokes canonical_units: m @@ -1173,37 +1231,76 @@ - standard_name: Sw_pstokes_y canonical_units: m/s description: Northward partitioned stokes drift components - # - standard_name: Sw_elevation_spectrum alias: wave_elevation_spectrum canonical_units: m2/s description: wave elevation spectrum - # - #----------------------------------- - # section: wave import - #----------------------------------- + - standard_name: Sw_ustokes_avg + canonical_units: m/s + description: Daily averaged stokes drift u component (only needed for med history output) # - - standard_name: Fwxx_taux - alias: mean_zonal_moment_flx - canonical_units: N m-2 - description: wave import - zonal surface stress + - standard_name: Sw_vstokes_avg + canonical_units: m/s + description: Daily averaged stokes drift v component (only needed for med history output) # - - standard_name: Fwxx_tauy - alias: mean_merid_moment_flx - canonical_units: N m-2 - description: wave import - meridional surface stress - - #----------------------------------- - # mediator fields - #----------------------------------- + - standard_name: Sw_hs_avg + canonical_units: m + description: Daily averaged significant wave hight (only needed for med history output) # - - standard_name: cpl_scalars - canonical_units: unitless + - standard_name: Sw_phs0_avg + canonical_units: m + description: Daily averaged averaged wind sea swh (only needed for med history output) # - - standard_name: frac - canonical_units: 1 + - standard_name: Sw_phs1_avg + canonical_units: m + description: Daily averaged swell swh (only needed for med history output) # - - standard_name: mask - canonical_units: 1 + - standard_name: Sw_pdir0_avg + canonical_units: degrees + description: Daily averaged wind sea swh (only needed for med history output) + # + - standard_name: Sw_pdir1_avg + canonical_units: degrees + description: Daily averaged swell swh (only needed for med history output) + # + - standard_name: Sw_pTm10_avg + canonical_units: s + description: Daily averaged wind sea mean wave Tm1 period (only needed for med history output) + # + - standard_name: Sw_pTm11_avg + canonical_units: s + description: Daily average swell mean wave Tm1 period (only needed for med history output) + # + - standard_name: Sw_Tm1_avg + canonical_units: s + description: Daily averaged mean wave period of the first moment (only needed for med history output) + # + - standard_name: Sw_thm_avg + canonical_units: degrees + description: Daily averaged mean wave direction (only needed for med history output) + # + - standard_name: Sw_thp0_avg + canonical_units: degrees + description: Daily averaged peak wave direction (only needed for med history output) + # + - standard_name: Sw_fp0_avg + canonical_units: 1/s + description: Daily averaged peak wave frequency (only needed for med history output) + # + - standard_name: Sw_u_avg + canonical_units: m/s + description: Daily averaged surface wind zonal (only needed for med history output) + # + - standard_name: Sw_v_avg + canonical_units: m/s + description: Daily averaged surface wind meridional (only needed for med history output) + # + - standard_name: Sw_tusx_avg + canonical_units: m2/s + description: Daily averaged stokes zonal transport vector (only needed for med history output) + # + - standard_name: Sw_tusy_avg + canonical_units: m2/s + description: Daily averaged stokes meridional transport vector (only needed for med history output) diff --git a/mediator/med_phases_aofluxes_mod.F90 b/mediator/med_phases_aofluxes_mod.F90 index 5252e6edc..33bc0abaa 100644 --- a/mediator/med_phases_aofluxes_mod.F90 +++ b/mediator/med_phases_aofluxes_mod.F90 @@ -149,6 +149,8 @@ module med_phases_aofluxes_mod real(R8) , pointer :: u10 (:) => null() ! diagnostic: 10m wind speed real(R8) , pointer :: duu10n (:) => null() ! diagnostic: 10m wind speed squared real(R8) , pointer :: ugust_out (:) => null() ! diagnostic: gust wind added + real(R8) , pointer :: u10_withGust(:) => null() ! diagnostic: gust wind added + real(R8) , pointer :: u10res (:) => null() ! diagnostic: no gust wind added real(R8) , pointer :: ustar (:) => null() ! saved ustar real(R8) , pointer :: re (:) => null() ! saved re real(R8) , pointer :: ssq (:) => null() ! saved sq @@ -1075,6 +1077,7 @@ subroutine med_aofluxes_update(gcomp, aoflux_in, aoflux_out, rc) add_gusts=add_gusts, & duu10n=aoflux_out%duu10n, & ugust_out = aoflux_out%ugust_out, & + u10res = aoflux_out%u10res, & ustar_sv=aoflux_out%ustar, re_sv=aoflux_out%re, ssq_sv=aoflux_out%ssq, & missval=0.0_r8) @@ -1108,8 +1111,9 @@ subroutine med_aofluxes_update(gcomp, aoflux_in, aoflux_out, rc) #endif do n = 1,aoflux_in%lsize - if (aoflux_in%mask(n) /= 0) then - aoflux_out%u10(n) = sqrt(aoflux_out%duu10n(n)) + if (aoflux_in%mask(n) /= 0) then + aoflux_out%u10(n) = aoflux_out%u10res(n) + aoflux_out%u10_withGust(n) = sqrt(aoflux_out%duu10n(n)) end if enddo @@ -1597,10 +1601,8 @@ subroutine set_aoflux_in_pointers(fldbun_a, fldbun_o, aoflux_in, lsize, xgrid, r if (chkerr(rc,__LINE__,u_FILE_u)) return call fldbun_getfldptr(fldbun_a, 'Sa_shum', aoflux_in%shum, xgrid=xgrid, rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return - if (add_gusts) then - call fldbun_getfldptr(fldbun_a, 'Faxa_rainc', aoflux_in%rainc, xgrid=xgrid, rc=rc) - if (chkerr(rc,__LINE__,u_FILE_u)) return - end if + call fldbun_getfldptr(fldbun_a, 'Faxa_rainc', aoflux_in%rainc, xgrid=xgrid, rc=rc) + if (chkerr(rc,__LINE__,u_FILE_u)) return end if ! extra fields for ufs.frac.aoflux @@ -1712,6 +1714,13 @@ subroutine set_aoflux_out_pointers(fldbun, lsize, aoflux_out, xgrid, rc) if (chkerr(rc,__LINE__,u_FILE_u)) return call fldbun_getfldptr(fldbun, 'So_duu10n', aoflux_out%duu10n, xgrid=xgrid, rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return + + call fldbun_getfldptr(fldbun, 'So_ugustOut', aoflux_out%ugust_out, xgrid=xgrid, rc=rc) + if (chkerr(rc,__LINE__,u_FILE_u)) return + call fldbun_getfldptr(fldbun, 'So_u10withGust', aoflux_out%u10_withGust, xgrid=xgrid, rc=rc) + if (chkerr(rc,__LINE__,u_FILE_u)) return + call fldbun_getfldptr(fldbun, 'So_u10res', aoflux_out%u10res, xgrid=xgrid, rc=rc) + if (chkerr(rc,__LINE__,u_FILE_u)) return call fldbun_getfldptr(fldbun, 'Faox_taux', aoflux_out%taux, xgrid=xgrid, rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return call fldbun_getfldptr(fldbun, 'Faox_tauy', aoflux_out%tauy, xgrid=xgrid, rc=rc) diff --git a/mediator/med_phases_cdeps_mod.F90 b/mediator/med_phases_cdeps_mod.F90 index 72ac560cc..4f37b6f79 100644 --- a/mediator/med_phases_cdeps_mod.F90 +++ b/mediator/med_phases_cdeps_mod.F90 @@ -7,7 +7,6 @@ module med_phases_cdeps_mod use ESMF, only: ESMF_Field, ESMF_FieldGet use ESMF, only: ESMF_FieldBundleGet, ESMF_FieldBundleIsCreated use ESMF, only: ESMF_FieldBundleCreate - use ESMF, only: ESMF_GridCompGetInternalState use ESMF, only: ESMF_SUCCESS, ESMF_LOGMSG_INFO use med_internalstate_mod, only: InternalState @@ -180,12 +179,12 @@ subroutine med_phases_cdeps_run(gcomp, rc) ! Fill file abd variable lists with data do l = 1, sdat_config%stream(streamid)%nfiles fileList(l) = trim(sdat_config%stream(streamid)%file(l)%name) - if (maintask) write(logunit,'(a,i2,x,a)') trim(subname)//": file ", l, trim(fileList(l)) + if (maintask) write(logunit,'(a,i2,2x,a)') trim(subname)//": file ", l, trim(fileList(l)) end do do l = 1, sdat_config%stream(streamid)%nvars varList(l,1) = trim(sdat_config%stream(streamid)%varlist(l)%nameinfile) varList(l,2) = trim(sdat_config%stream(streamid)%varlist(l)%nameinmodel) - if (maintask) write(logunit,'(a,i2,x,a)') trim(subname)//": variable ", l, trim(varList(l,1))//" -> "//trim(varList(l,2)) + if (maintask) write(logunit,'(a,i2,2x,a)') trim(subname)//": variable ", l, trim(varList(l,1))//" -> "//trim(varList(l,2)) end do ! Set PIO related variables diff --git a/mediator/med_phases_history_mod.F90 b/mediator/med_phases_history_mod.F90 index 52b20c035..0a6a7775d 100644 --- a/mediator/med_phases_history_mod.F90 +++ b/mediator/med_phases_history_mod.F90 @@ -519,19 +519,20 @@ subroutine med_phases_history_write_med(gcomp, rc) end subroutine med_phases_history_write_med !=============================================================================== - subroutine med_phases_history_write_lnd2glc(gcomp, fldbun, rc) + subroutine med_phases_history_write_lnd2glc(gcomp, fldbun_lnd, rc, fldbun_glc) - ! Write yearly average of lnd -> glc fields + ! Write yearly average of lnd -> glc fields on both land and glc grids - use med_internalstate_mod, only : complnd + use med_internalstate_mod, only : complnd, compglc use med_constants_mod , only : SecPerDay => med_constants_SecPerDay use med_io_mod , only : med_io_write_time, med_io_define_time use med_io_mod , only : med_io_date2yyyymmdd, med_io_sec2hms, med_io_ymd2date ! input/output variables type(ESMF_GridComp) , intent(in) :: gcomp - type(ESMF_FieldBundle) , intent(in) :: fldbun + type(ESMF_FieldBundle) , intent(in) :: fldbun_lnd integer , intent(out) :: rc + type(ESMF_FieldBundle) , intent(in), optional :: fldbun_glc(:) ! local variables type(file_desc_t) :: io_file @@ -550,7 +551,7 @@ subroutine med_phases_history_write_lnd2glc(gcomp, fldbun, rc) real(r8) :: time_val ! time coordinate output real(r8) :: time_bnds(2) ! time bounds output character(len=CL) :: hist_file - integer :: m + integer :: m,n logical :: isPresent character(len=*), parameter :: subname='(med_phases_history_write_lnd2glc)' !--------------------------------------- @@ -623,9 +624,21 @@ subroutine med_phases_history_write_lnd2glc(gcomp, fldbun, rc) call med_io_write_time(io_file, time_val, time_bnds, nt=1, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return end if - call med_io_write(io_file, fldbun, whead(m), wdata(m), is_local%wrap%nx(complnd), is_local%wrap%ny(complnd), & + + call med_io_write(io_file, fldbun_lnd, whead(m), wdata(m), & + is_local%wrap%nx(complnd), is_local%wrap%ny(complnd), & nt=1, pre=trim(compname(complnd))//'Imp', rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return + + if (present(fldbun_glc)) then + do n = 1,size(fldbun_glc) + call med_io_write(io_file, fldbun_glc(n), whead(m), wdata(m), & + is_local%wrap%nx(compglc(n)), is_local%wrap%ny(compglc(n)), & + nt=1, pre=trim(compname(compglc(n)))//'Exp', rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + end do + end if + end do ! end of loop over m ! Close history file diff --git a/mediator/med_phases_prep_glc_mod.F90 b/mediator/med_phases_prep_glc_mod.F90 index 920fb415e..1fecf1a86 100644 --- a/mediator/med_phases_prep_glc_mod.F90 +++ b/mediator/med_phases_prep_glc_mod.F90 @@ -632,22 +632,6 @@ subroutine med_phases_prep_glc_avg(gcomp, rc) end if end do - ! Write auxiliary history file if flag is set and accumulation is being done - if (lndAccum2glc_cnt > 0) then - call NUOPC_CompAttributeGet(gcomp, name="histaux_l2x1yrg", value=cvalue, & - isPresent=isPresent, isSet=isSet, rc=rc) - if (ChkErr(rc,__LINE__,u_FILE_u)) return - if (isPresent .and. isSet) then - read(cvalue,*) write_histaux_l2x1yrg - else - write_histaux_l2x1yrg = .false. - end if - if (write_histaux_l2x1yrg) then - call med_phases_history_write_lnd2glc(gcomp, FBlndAccum2glc_l, rc) - if (ChkErr(rc,__LINE__,u_FILE_u)) return - end if - end if - if (is_local%wrap%ocn2glc_coupling) then ! Average import from accumulated ocn import data do n = 1, size(fldnames_fr_ocn) @@ -688,15 +672,39 @@ subroutine med_phases_prep_glc_avg(gcomp, rc) if (chkErr(rc,__LINE__,u_FILE_u)) return end if + ! Determine if auxiliary file will be written + write_histaux_l2x1yrg = .false. + if (lndAccum2glc_cnt > 0) then + call NUOPC_CompAttributeGet(gcomp, name="histaux_l2x1yrg", value=cvalue, & + isPresent=isPresent, isSet=isSet, rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + if (isPresent .and. isSet) then + read(cvalue,*) write_histaux_l2x1yrg + end if + end if + + ! Write auxiliary history file if flag is set and accumulation is being done if (is_local%wrap%lnd2glc_coupling) then ! Map accumulated field bundle from land grid (with elevation classes) to glc grid (without elevation classes) ! and set FBExp(compglc(ns)) data ! Zero land accumulator and accumulated field bundles on land grid call med_phases_prep_glc_map_lnd2glc(gcomp, rc) if (chkErr(rc,__LINE__,u_FILE_u)) return + + if (write_histaux_l2x1yrg) then + call med_phases_history_write_lnd2glc(gcomp, FBlndAccum2glc_l, & + fldbun_glc=is_local%wrap%FBExp(compglc(:)), rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + end if + lndAccum2glc_cnt = 0 call fldbun_reset(FBlndAccum2glc_l, value=czero, rc=rc) if (chkErr(rc,__LINE__,u_FILE_u)) return + else + if (write_histaux_l2x1yrg) then + call med_phases_history_write_lnd2glc(gcomp, FBlndAccum2glc_l, rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + end if end if if (dbug_flag > 1) then diff --git a/mediator/med_phases_profile_mod.F90 b/mediator/med_phases_profile_mod.F90 index dadfb989c..dee849ae8 100644 --- a/mediator/med_phases_profile_mod.F90 +++ b/mediator/med_phases_profile_mod.F90 @@ -41,7 +41,7 @@ subroutine med_phases_profile(gcomp, rc) use ESMF , only : ESMF_TimeInterval, ESMF_AlarmGet, ESMF_TimeIntervalGet use ESMF , only : ESMF_ClockGetNextTime, ESMF_TimeGet, ESMF_ClockGet use ESMF , only : ESMF_ClockAdvance, ESMF_ClockSet, ESMF_ClockIsStopTime - use ESMF , only : operator(-) + use ESMF , only : operator(-), ESMF_CALKIND_GREGORIAN use NUOPC , only : NUOPC_CompAttributeGet ! write profile output @@ -170,12 +170,13 @@ subroutine med_phases_profile(gcomp, rc) call ESMF_TimeGet(nexttime, timestring=nexttimestr, rc=rc) if (med_utils_ChkErr(rc,__LINE__,u_FILE_u)) return ! get current wall clock time - call ESMF_TimeSet(wallclocktime, rc=rc) + ! s=0 is to prevent an internal divide by 0 error in esmf + call ESMF_TimeSet(wallclockTime, calkindflag=ESMF_CALKIND_GREGORIAN, s=0, rc=rc) if (med_utils_chkerr(rc,__LINE__,u_FILE_u)) return - call ESMF_TimeSyncToRealTime(wallclocktime, rc=rc) + call ESMF_TimeSyncToRealTime(wallclockTime, rc=rc) if (med_utils_chkerr(rc,__LINE__,u_FILE_u)) return - call ESMF_TimeGet(wallclocktime,timeString=walltimestr, rc=rc) + call ESMF_TimeGet(wallclockTime,timeString=walltimestr, rc=rc) if (med_utils_ChkErr(rc,__LINE__,u_FILE_u)) return ! 1 model day/ x seconds = 1/365 yrs/ (wallclockelapsed s/86400spd