diff --git a/.github/workflows/extbuild.yml b/.github/workflows/extbuild.yml
index 35b9a1a3..8455f292 100644
--- a/.github/workflows/extbuild.yml
+++ b/.github/workflows/extbuild.yml
@@ -30,53 +30,30 @@ jobs:
- id: load-env
run: |
sudo apt-get update
- sudo apt-get install gfortran wget openmpi-bin netcdf-bin libopenmpi-dev libnetcdf-dev autotools-dev autoconf
+ sudo apt-get update
+ sudo apt-get install gfortran
+ sudo apt-get install wget
+ sudo apt-get install openmpi-bin libopenmpi-dev
+ sudo apt-get install netcdf-bin libnetcdf-dev libnetcdff-dev
+ sudo apt-get install pnetcdf-bin libpnetcdf-dev
+ sudo apt-get install autotools-dev autoconf
- id: cache-esmf
uses: actions/cache@v3
with:
path: ~/ESMF
key: ${{ runner.os }}-${{ env.ESMF_VERSION }}-ESMF
- - id: cache-pnetcdf
- uses: actions/cache@v2
- with:
- path: ~/pnetcdf
- key: ${{ runner.os }}-${{ env.PNETCDF_VERSION}}-pnetcdf
- - name: Cache netcdf-fortran
- id: cache-netcdf-fortran
- uses: actions/cache@v2
- with:
- path: ~/netcdf-fortran
- key: ${{ runner.os }}-${{ env.NETCDF_FORTRAN_VERSION }}-netcdf-fortran
- name: Cache ParallelIO
id: cache-ParallelIO
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ~/pio
key: ${{ runner.os }}-${{ env.PIO_VERSION }}.pio
- restore-keys: |
- ${{ runner.os }}-${{ env.NETCDF_FORTRAN_VERSION }}-netcdf-fortran
- ${{ runner.os }}-${{ env.PNETCDF_VERSION }}-pnetcdf
- - name: Build PNetCDF
- if: steps.cache-pnetcdf.outputs.cache-hit != 'true'
- uses: ESCOMP/CDEPS/.github/actions/buildpnetcdf@e06246b560d3132170bb1a5443fa3d65dfbd2040
- with:
- pnetcdf_version: ${{ env.PNETCDF_VERSION }}
- install_prefix: $HOME/pnetcdf
- - name: Build NetCDF Fortran
- if: steps.cache-netcdf-fortran.outputs.cache-hit != 'true'
- uses: ESCOMP/CDEPS/.github/actions/buildnetcdff@e06246b560d3132170bb1a5443fa3d65dfbd2040
- with:
- netcdf_fortran_version: ${{ env.NETCDF_FORTRAN_VERSION }}
- install_prefix: $HOME/netcdf-fortran
- netcdf_c_path: /usr
- name: Build ParallelIO
if: steps.cache-ParallelIO.outputs.cache-hit != 'true'
- uses: ESCOMP/CDEPS/.github/actions/buildpio@e06246b560d3132170bb1a5443fa3d65dfbd2040
+ uses: NCAR/ParallelIO/.github/actions/parallelio_cmake@9390e30e29d4ebbfbef0fc72162cacd9e8f25e4e
with:
parallelio_version: ${{ env.ParallelIO_VERSION }}
- netcdf_c_path: /usr
- netcdf_fortran_path: $HOME/netcdf-fortran
- pnetcdf_path: $HOME/pnetcdf
+ enable_fortran: True
install_prefix: $HOME/pio
- name: Build ESMF
if: steps.cache-esmf.outputs.cache-hit != 'true'
@@ -87,8 +64,8 @@ jobs:
esmf_comm: openmpi
install_prefix: $HOME/ESMF
netcdf_c_path: /usr
- netcdf_fortran_path: $HOME/netcdf-fortran
- pnetcdf_path: $HOME/pnetcdf
+ netcdf_fortran_path: /usr
+ pnetcdf_path: /usr
parallelio_path: $HOME/pio
- name: Build CMEPS
run: |
@@ -96,6 +73,6 @@ jobs:
export PIO=$HOME/pio
mkdir build-cmeps
pushd build-cmeps
- cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_Fortran_FLAGS="-g -Wall -ffree-form -ffree-line-length-none" ../
+ cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_Fortran_FLAGS="-g -Wall -Werror -ffree-form -ffree-line-length-none -Wno-unused-dummy-argument" ../
make VERBOSE=1
popd
diff --git a/cesm/driver/ensemble_driver.F90 b/cesm/driver/ensemble_driver.F90
index 2b823818..7e64c1cc 100644
--- a/cesm/driver/ensemble_driver.F90
+++ b/cesm/driver/ensemble_driver.F90
@@ -91,15 +91,12 @@ subroutine SetModelServices(ensemble_driver, rc)
type(ESMF_VM) :: vm
type(ESMF_GridComp) :: driver, gridcomptmp
type(ESMF_Config) :: config
- integer :: n, n1, stat
+ integer :: n
integer, pointer :: petList(:)
- character(len=20) :: model, prefix
- integer :: petCount, i
+ integer :: petCount
integer :: localPet
- logical :: is_set
character(len=512) :: diro
character(len=512) :: logfile
- integer :: global_comm
logical :: read_restart
character(len=CS) :: read_restart_string
integer :: inst
diff --git a/cesm/driver/esm.F90 b/cesm/driver/esm.F90
index 3d0bb5a2..1c73ea17 100644
--- a/cesm/driver/esm.F90
+++ b/cesm/driver/esm.F90
@@ -54,7 +54,6 @@ subroutine SetServices(driver, rc)
integer, intent(out) :: rc
! local variables
- type(ESMF_Config) :: runSeq
character(len=*), parameter :: subname = "(esm.F90:SetServices)"
!---------------------------------------
@@ -125,9 +124,7 @@ subroutine SetModelServices(driver, rc)
! local variables
type(ESMF_VM) :: vm
type(ESMF_Config) :: config
- integer :: n, i, stat
- character(len=20) :: model, prefix
- integer :: localPet, medpet
+ integer :: localPet
character(len=CL) :: meminitStr
integer :: global_comm
integer :: maxthreads
@@ -241,7 +238,6 @@ subroutine SetRunSequence(driver, rc)
integer, intent(out) :: rc
! local variables
- integer :: localrc
type(ESMF_Config) :: runSeq
type(NUOPC_FreeFormat) :: runSeqFF
character(len=*), parameter :: subname = "(esm.F90:SetRunSequence)"
@@ -267,7 +263,7 @@ subroutine SetRunSequence(driver, rc)
call NUOPC_DriverIngestRunSequence(driver, runSeqFF, autoAddConnectors=.true., rc=rc)
if (chkerr(rc,__LINE__,u_FILE_u)) return
-
+#ifdef DEBUG
! Uncomment these to add debugging information for driver
! call NUOPC_DriverPrint(driver, orderflag=.true.)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
@@ -275,9 +271,9 @@ subroutine SetRunSequence(driver, rc)
! file=__FILE__)) &
! return ! bail out
- ! call pretty_print_nuopc_freeformat(runSeqFF, 'run sequence', rc=rc)
- ! if (chkerr(rc,__LINE__,u_FILE_u)) return
-
+! call pretty_print_nuopc_freeformat(runSeqFF, 'run sequence', rc=rc)
+! if (chkerr(rc,__LINE__,u_FILE_u)) return
+#endif
call NUOPC_FreeFormatDestroy(runSeqFF, rc=rc)
if (chkerr(rc,__LINE__,u_FILE_u)) return
@@ -433,11 +429,7 @@ subroutine InitAttributes(driver, rc)
type(ShrWVSatTableSpec) :: liquid_spec
type(ShrWVSatTableSpec) :: ice_spec
type(ShrWVSatTableSpec) :: mixed_spec
- logical :: flag
- integer :: i, it, n
- integer :: unitn ! Namelist unit number to read
integer :: localPet, rootpe_med
- character(len=CL) :: msgstr
integer , parameter :: ens1=1 ! use first instance of ensemble only
integer , parameter :: fix1=1 ! temporary hard-coding to first ensemble, needs to be fixed
real(R8) , parameter :: epsilo = shr_const_mwwv/shr_const_mwdair
@@ -568,8 +560,6 @@ subroutine CheckAttributes( driver, rc )
integer , intent(out) :: rc
!----- local -----
- character(len=CL) :: cvalue ! temporary
- character(len=CL) :: start_type ! Type of startup
character(len=CS) :: logFilePostFix ! postfix for output log files
character(len=CL) :: outPathRoot ! root for output log files
character(len=CS) :: cime_model
@@ -627,12 +617,9 @@ subroutine AddAttributes(gcomp, driver, config, compid, compname, inst_suffix, n
integer , intent(inout) :: rc
! local variables
- integer :: n
- integer :: stat
integer :: inst_index
character(len=CL) :: cvalue
character(len=CS) :: attribute
- integer :: componentCount
character(len=*), parameter :: subname = "(esm.F90:AddAttributes)"
!-------------------------------------------
@@ -750,12 +737,12 @@ subroutine ReadAttributes(gcomp, config, label, relaxedflag, formatprint, rc)
call NUOPC_CompAttributeIngest(gcomp, attrFF, addFlag=.true., rc=rc)
if (chkerr(rc,__LINE__,u_FILE_u)) return
-
- ! if (present (formatprint)) then
- ! call pretty_print_nuopc_freeformat(attrFF, trim(label)//' attributes', rc=rc)
- ! if (chkerr(rc,__LINE__,u_FILE_u)) return
- ! end if
-
+#ifdef DEBUG
+! if (present (formatprint)) then
+! call pretty_print_nuopc_freeformat(attrFF, trim(label)//' attributes', rc=rc)
+! if (chkerr(rc,__LINE__,u_FILE_u)) return
+! end if
+#endif
call NUOPC_FreeFormatDestroy(attrFF, rc=rc)
if (chkerr(rc,__LINE__,u_FILE_u)) return
@@ -870,11 +857,10 @@ subroutine esm_init_pelayout(driver, maxthreads, rc)
type(ESMF_VM) :: vm
type(ESMF_Config) :: config
type(ESMF_Info) :: info
- integer :: componentcount
integer :: PetCount
- integer :: LocalPet
+ integer :: ComponentCount
integer :: ntasks, rootpe, nthrds, stride
- integer :: ntask, cnt
+ integer :: ntask
integer :: i
integer :: stat
character(len=32), allocatable :: compLabels(:)
@@ -1254,7 +1240,7 @@ subroutine esm_set_single_column_attributes(compname, gcomp, rc)
!-------------------------------------------------------------------------------
rc = ESMF_SUCCESS
-
+ scol_mesh_n = 0
! obtain the single column lon and lat
call NUOPC_CompAttributeGet(gcomp, name='scol_lon', value=cvalue, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
diff --git a/cesm/driver/esm_time_mod.F90 b/cesm/driver/esm_time_mod.F90
index 337b7bc5..ada8f2da 100644
--- a/cesm/driver/esm_time_mod.F90
+++ b/cesm/driver/esm_time_mod.F90
@@ -23,7 +23,7 @@ module esm_time_mod
public :: esm_time_clockInit ! initialize driver clock (assumes default calendar)
- private :: esm_time_timeInit
+! private :: esm_time_timeInit
private :: esm_time_alarmInit
private :: esm_time_date2ymd
@@ -87,15 +87,14 @@ subroutine esm_time_clockInit(ensemble_driver, instance_driver, logunit, mastert
integer :: glc_cpl_dt ! Glc coupling interval
integer :: rof_cpl_dt ! Runoff coupling interval
integer :: wav_cpl_dt ! Wav coupling interval
- integer :: esp_cpl_dt ! Esp coupling interval
+! integer :: esp_cpl_dt ! Esp coupling interval
character(CS) :: glc_avg_period ! Glc avering coupling period
logical :: read_restart
character(len=CL) :: restart_file
character(len=CL) :: restart_pfile
character(len=CL) :: cvalue
integer :: dtime_drv ! time-step to use
- integer :: yr, mon, day, sec ! Year, month, day, secs as integers
- integer :: localPet ! local pet in esm domain
+ integer :: yr, mon, day ! Year, month, day as integers
integer :: unitn ! unit number
integer :: ierr ! Return code
character(CL) :: tmpstr ! temporary
@@ -392,7 +391,6 @@ subroutine esm_time_alarmInit( clock, alarm, option, &
type(ESMF_Time) :: CurrTime ! Current Time
type(ESMF_Time) :: NextAlarm ! Next restart alarm time
type(ESMF_TimeInterval) :: AlarmInterval ! Alarm interval
- integer :: sec
character(len=*), parameter :: subname = '(med_time_alarmInit): '
!-------------------------------------------------------------------------------
@@ -563,7 +561,7 @@ subroutine esm_time_alarmInit( clock, alarm, option, &
end subroutine esm_time_alarmInit
!===============================================================================
-
+#ifdef UNUSEDFUNCTION
subroutine esm_time_timeInit( Time, ymd, cal, tod, desc, logunit )
! Create the ESMF_Time object corresponding to the given input time, given in
@@ -607,7 +605,7 @@ subroutine esm_time_timeInit( Time, ymd, cal, tod, desc, logunit )
if (ChkErr(rc,__LINE__,u_FILE_u)) return
end subroutine esm_time_timeInit
-
+#endif
!===============================================================================
subroutine esm_time_date2ymd (date, year, month, day)
diff --git a/cesm/driver/t_driver_timers_mod.F90 b/cesm/driver/t_driver_timers_mod.F90
index fd316e6d..c3894658 100644
--- a/cesm/driver/t_driver_timers_mod.F90
+++ b/cesm/driver/t_driver_timers_mod.F90
@@ -76,7 +76,6 @@ subroutine t_drvstopf(string,cplrun,cplcom,budget,hashint)
logical,intent(in),optional :: cplcom
logical,intent(in),optional :: budget
integer, intent(in), optional :: hashint
- character(len=128) :: strbar
logical :: lcplrun,lcplcom,lbudget
!-------------------------------------------------------------------------------
diff --git a/cesm/flux_atmocn/shr_flux_mod.F90 b/cesm/flux_atmocn/shr_flux_mod.F90
index 9e74abf2..9ec55873 100644
--- a/cesm/flux_atmocn/shr_flux_mod.F90
+++ b/cesm/flux_atmocn/shr_flux_mod.F90
@@ -1445,7 +1445,8 @@ SUBROUTINE flux_atmOcn_diurnal &
tSkin_night(:) = ts(:)
cSkin_night(:) = 0.0_R8
endif
-
+ u10n = 0.0_r8
+ stable = 0.0_r8
DO n=1,nMax
if (mask(n) /= 0) then
diff --git a/cime_config/namelist_definition_drv.xml b/cime_config/namelist_definition_drv.xml
index 4a5b34fc..ce1ae92f 100644
--- a/cime_config/namelist_definition_drv.xml
+++ b/cime_config/namelist_definition_drv.xml
@@ -891,7 +891,7 @@
default: xgrid
- xgrid
+ ogrid
diff --git a/mediator/CMakeLists.txt b/mediator/CMakeLists.txt
index a851018b..84f62675 100644
--- a/mediator/CMakeLists.txt
+++ b/mediator/CMakeLists.txt
@@ -8,12 +8,12 @@ set(SRCFILES esmFldsExchange_cesm_mod.F90 med_fraction_mod.F90
esmFldsExchange_nems_mod.F90 med_io_mod.F90
med_phases_history_mod.F90 med_phases_prep_ocn_mod.F90
med_utils_mod.F90 esmFlds.F90 med_kind_mod.F90
- med_phases_ocnalb_mod.F90 med_phases_prep_rof_mod.F90
+ med_phases_prep_rof_mod.F90
med_constants_mod.F90 med_map_mod.F90
med_phases_prep_atm_mod.F90 med_phases_prep_wav_mod.F90
med.F90 med_merge_mod.F90 med_phases_prep_glc_mod.F90
med_phases_profile_mod.F90 med_diag_mod.F90
- med_phases_post_ocn_mod.F90
+ med_phases_post_ocn_mod.F90 med_phases_ocnalb_mod.F90
med_phases_post_atm_mod.F90 med_phases_post_ice_mod.F90
med_phases_post_lnd_mod.F90 med_phases_post_glc_mod.F90
med_phases_post_rof_mod.F90 med_phases_post_wav_mod.F90)
diff --git a/mediator/esmFlds.F90 b/mediator/esmFlds.F90
index cb634f46..54e20ea1 100644
--- a/mediator/esmFlds.F90
+++ b/mediator/esmFlds.F90
@@ -398,7 +398,7 @@ subroutine med_fldList_AddMap(fields, fldname, destcomp, maptype, mapnorm, mapfi
! local variables
type(med_fldList_entry_type), pointer :: newfld
- integer :: id, n, rc
+ integer :: rc
character(len=CX) :: lmapfile
character(len=*),parameter :: subname='(med_fldList_AddMap)'
! ----------------------------------------------
@@ -458,7 +458,6 @@ subroutine med_fldList_Realize(state, fldList, flds_scalar_name, flds_scalar_num
integer :: n
type(ESMF_Field) :: field
character(CS) :: shortname
- character(CS) :: stdname
character(ESMF_MAXSTR) :: transferActionAttr
type(ESMF_StateIntent_Flag) :: stateIntent
character(ESMF_MAXSTR) :: transferAction
@@ -817,20 +816,12 @@ subroutine med_fldList_Document_Mapping(logunit, med_coupling_active)
logical, intent(in) :: med_coupling_active(:,:)
! local variables
- integer :: nsrc,ndst,nf,nm,n
+ integer :: nsrc,ndst
integer :: mapindex
character(len=CS) :: mapnorm
character(len=CL) :: mapfile
character(len=CS) :: fldname
- character(len=CS) :: stdname
- character(len=CX) :: merge_fields
- character(len=CX) :: merge_field
- character(len=CS) :: merge_type
- character(len=CS) :: merge_fracname
- character(len=CS) :: string
- character(len=CL) :: mrgstr
character(len=CL) :: cvalue
- logical :: init_mrgstr
type(med_fldList_entry_type), pointer :: newfld
character(len=*),parameter :: subname = '(med_fldList_Document_Mapping)'
!-----------------------------------------------------------
@@ -919,18 +910,16 @@ subroutine med_fldList_Document_Merging(logunit, med_coupling_active)
logical, intent(in) :: med_coupling_active(:,:)
! local variables
- integer :: nsrc,ndst,nf,n
+ integer :: nsrc,ndst
character(len=CS) :: dst_comp
character(len=CS) :: dst_field
character(len=CS) :: src_comp
- character(len=CS) :: src_field
character(len=CS) :: merge_type
character(len=CS) :: merge_field
character(len=CS) :: merge_frac
character(len=CS) :: prefix
character(len=CS) :: string
character(len=CL) :: mrgstr
- logical :: init_mrgstr
type(med_fldList_entry_type), pointer :: newfld
character(len=*),parameter :: subname = '(med_fldList_Document_Merging)'
!-----------------------------------------------------------
diff --git a/mediator/esmFldsExchange_cesm_mod.F90 b/mediator/esmFldsExchange_cesm_mod.F90
index 149c7791..ac003daa 100644
--- a/mediator/esmFldsExchange_cesm_mod.F90
+++ b/mediator/esmFldsExchange_cesm_mod.F90
@@ -76,7 +76,6 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
use med_internalstate_mod , only : compice, comprof, compwav, compglc, ncomps
use med_internalstate_mod , only : mapbilnr, mapconsf, mapconsd, mappatch, mappatch_uv3d, mapbilnr_nstod
use med_internalstate_mod , only : mapfcopy, mapnstod, mapnstod_consd, mapnstod_consf
- use med_internalstate_mod , only : coupling_mode
use med_internalstate_mod , only : map_glc2ocn_ice, map_glc2ocn_liq, map_rof2ocn_ice, map_rof2ocn_liq
use esmFlds , only : addfld_ocnalb => med_fldList_addfld_ocnalb
use esmFlds , only : addfld_aoflux => med_fldList_addfld_aoflux
@@ -97,7 +96,6 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
type(InternalState) :: is_local
integer :: n, ns
character(len=CL) :: cvalue
- character(len=CS) :: name
logical :: wavice_coupling
logical :: ocn2glc_coupling
character(len=*) , parameter :: subname=' (esmFldsExchange_cesm) '
diff --git a/mediator/esmFldsExchange_hafs_mod.F90 b/mediator/esmFldsExchange_hafs_mod.F90
index 6aa71596..1f645524 100644
--- a/mediator/esmFldsExchange_hafs_mod.F90
+++ b/mediator/esmFldsExchange_hafs_mod.F90
@@ -95,16 +95,14 @@ subroutine esmFldsExchange_hafs_advt(gcomp, phase, rc)
integer , intent(inout) :: rc
! local variables:
- integer :: num, i, n
+ integer :: n
logical :: isPresent
character(len=CL) :: cvalue
- character(len=CS) :: name, fldname
+ character(len=CS) :: fldname
character(len=CS) :: fldname1, fldname2
type(gcomp_attr) :: hafs_attr
- character(len=CS), allocatable :: flds(:)
character(len=CS), allocatable :: S_flds(:)
character(len=CS), allocatable :: F_flds(:,:)
- character(len=CS), allocatable :: suffix(:)
character(len=*) , parameter :: subname='(esmFldsExchange_hafs_advt)'
!--------------------------------------
@@ -307,16 +305,12 @@ subroutine esmFldsExchange_hafs_init(gcomp, phase, rc)
! local variables:
type(InternalState) :: is_local
- integer :: num, i, n
- integer :: n1, n2, n3, n4
- character(len=CL) :: cvalue
- character(len=CS) :: name, fldname
+ integer :: n
+ character(len=CS) :: fldname
character(len=CS) :: fldname1, fldname2
type(gcomp_attr) :: hafs_attr
- character(len=CS), allocatable :: flds(:)
character(len=CS), allocatable :: S_flds(:)
character(len=CS), allocatable :: F_flds(:,:)
- character(len=CS), allocatable :: suffix(:)
character(len=*) , parameter :: subname='(esmFldsExchange_hafs_init)'
!--------------------------------------
diff --git a/mediator/esmFldsExchange_nems_mod.F90 b/mediator/esmFldsExchange_nems_mod.F90
index 084ab10d..f37a9c89 100644
--- a/mediator/esmFldsExchange_nems_mod.F90
+++ b/mediator/esmFldsExchange_nems_mod.F90
@@ -26,7 +26,6 @@ subroutine esmFldsExchange_nems(gcomp, phase, rc)
use med_utils_mod , only : chkerr => med_utils_chkerr
use med_methods_mod , only : fldchk => med_methods_FB_FldChk
use med_internalstate_mod , only : InternalState
- use med_internalstate_mod , only : mastertask, logunit
use med_internalstate_mod , only : compmed, compatm, compocn, compice, complnd, compwav, ncomps
use med_internalstate_mod , only : mapbilnr, mapconsf, mapconsd, mappatch
use med_internalstate_mod , only : mapfcopy, mapnstod, mapnstod_consd, mapnstod_consf
@@ -40,8 +39,6 @@ subroutine esmFldsExchange_nems(gcomp, phase, rc)
use esmFlds , only : addfld_aoflux => med_fldList_addfld_aoflux
use esmFlds , only : addmap_aoflux => med_fldList_addmap_aoflux
- use med_internalstate_mod , only : InternalState, mastertask, logunit
-
! input/output parameters:
type(ESMF_GridComp) :: gcomp
character(len=*) , intent(in) :: phase
@@ -49,7 +46,7 @@ subroutine esmFldsExchange_nems(gcomp, phase, rc)
! local variables:
type(InternalState) :: is_local
- integer :: i, n, maptype
+ integer :: n, maptype
character(len=CX) :: msgString
character(len=CL) :: cvalue
character(len=CS) :: fldname
diff --git a/mediator/med.F90 b/mediator/med.F90
index 352cf0c4..e9b76721 100644
--- a/mediator/med.F90
+++ b/mediator/med.F90
@@ -567,7 +567,6 @@ subroutine InitializeP0(gcomp, importState, exportState, clock, rc)
character(len=CX) :: diro
character(len=CX) :: logfile
character(len=CX) :: diagfile
- character(len=CX) :: do_budgets
character(len=*),parameter :: subname=' (InitializeP0) '
!-----------------------------------------------------------
@@ -660,7 +659,6 @@ subroutine InitializeIPDv03p1(gcomp, importState, exportState, clock, rc)
use NUOPC , only : NUOPC_CompAttributeGet, NUOPC_CompAttributeSet, NUOPC_CompAttributeAdd
use esmFlds, only : med_fldlist_init1, med_fld_GetFldInfo, med_fldList_entry_type
use med_phases_history_mod, only : med_phases_history_init
- use med_internalstate_mod , only : atm_name
! input/output variables
type(ESMF_GridComp) :: gcomp
@@ -670,7 +668,7 @@ subroutine InitializeIPDv03p1(gcomp, importState, exportState, clock, rc)
! local variables
character(len=CS) :: stdname, shortname
- integer :: n, n1, n2, ncomp, nflds, ns
+ integer :: ncomp, ns
logical :: isPresent, isSet
character(len=CS) :: transferOffer
character(len=CS) :: cvalue
@@ -1003,7 +1001,7 @@ subroutine InitializeIPDv03p4(gcomp, importState, exportState, clock, rc)
! local variables
type(InternalState) :: is_local
- integer :: n1,n2
+ integer :: n1
character(len=*),parameter :: subname=' (Modify Decomp of Mesh/Grid) '
!-----------------------------------------------------------
@@ -1064,7 +1062,7 @@ subroutine realizeConnectedGrid(State,string,rc)
integer :: dimCount, tileCount
integer :: connectionCount
integer :: fieldCount
- integer :: i, j, n, n1, i1, i2
+ integer :: n, n1, i1, i2
type(ESMF_GeomType_Flag) :: geomtype
type(ESMF_FieldStatus_Flag) :: fieldStatus
character(len=CX) :: msgString
@@ -1331,7 +1329,7 @@ subroutine InitializeIPDv03p5(gcomp, importState, exportState, clock, rc)
! local variables
type(InternalState) :: is_local
- integer :: n1,n2
+ integer :: n1
character(len=*),parameter :: subname=' (Realize Fields with Transfer Accept) '
!-----------------------------------------------------------
@@ -1579,24 +1577,19 @@ subroutine DataInitialize(gcomp, rc)
! local variables
type(InternalState) :: is_local
- type(ESMF_VM) :: vm
type(ESMF_Clock) :: clock
type(ESMF_State) :: importState, exportState
type(ESMF_Time) :: time
type(ESMF_Field) :: field
- type(ESMF_StateItem_Flag) :: itemType
type(med_fldList_type), pointer :: fldListMed_ocnalb
- logical :: atCorrectTime, connected
- integer :: n1,n2,n,ns
+ logical :: atCorrectTime
+ integer :: n1,n2,n
integer :: nsrc,ndst
- integer :: cntn1, cntn2
integer :: fieldCount
character(ESMF_MAXSTR),allocatable :: fieldNameList(:)
character(CL), pointer :: fldnames(:)
character(CL) :: cvalue
- character(CL) :: start_type
logical :: read_restart
- logical :: isPresent, isSet
logical :: allDone = .false.
logical,save :: first_call = .true.
real(r8) :: real_nx, real_ny
@@ -2204,11 +2197,9 @@ subroutine SetRunClock(gcomp, rc)
type(ESMF_TimeInterval) :: timeStep
type(ESMF_Alarm) :: stop_alarm
character(len=CL) :: cvalue
- character(len=CL) :: name, stop_option
+ character(len=CL) :: stop_option
integer :: stop_n, stop_ymd
- logical :: first_time = .true.
logical, save :: stopalarmcreated=.false.
- integer :: alarmcount
character(len=*),parameter :: subname=' (Set Run Clock) '
!-----------------------------------------------------------
diff --git a/mediator/med_diag_mod.F90 b/mediator/med_diag_mod.F90
index 2792d0a2..6cf30a8d 100644
--- a/mediator/med_diag_mod.F90
+++ b/mediator/med_diag_mod.F90
@@ -263,7 +263,6 @@ subroutine med_diag_init(gcomp, rc)
integer :: c_size ! number of component send/recvs
integer :: f_size ! number of fields
integer :: p_size ! number of period types
- type(ESMF_Clock) :: mediatorClock
character(CS) :: cvalue
logical :: isPresent, isSet
character(*), parameter :: subName = '(med_phases_diag_init) '
@@ -575,7 +574,7 @@ subroutine med_phases_diag_accum(gcomp, rc)
integer, intent(out) :: rc
! local variables
- integer :: ip, ic
+ integer :: ip
character(*), parameter :: subName = '(med_diag_accum) '
! ------------------------------------------------------------------
@@ -647,14 +646,13 @@ subroutine med_phases_diag_atm(gcomp, rc)
! local variables
type(InternalState) :: is_local
- integer :: n,nf,ic,ip
+ integer :: n,nf,ip
real(r8), pointer :: afrac(:)
real(r8), pointer :: lfrac(:)
real(r8), pointer :: ifrac(:)
real(r8), pointer :: ofrac(:)
real(r8), pointer :: areas(:)
real(r8), pointer :: lats(:)
- type(ESMF_Field) :: lfield
character(*), parameter :: subName = '(med_phases_diag_atm) '
!-------------------------------------------------------------------------------
@@ -790,7 +788,6 @@ subroutine diag_atm_recv(FB, fldname, nf, areas, lats, afrac, lfrac, ofrac, ifra
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -826,7 +823,6 @@ subroutine diag_atm_send(FB, fldname, nf, areas, lats, afrac, lfrac, ofrac, ifra
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -865,7 +861,6 @@ subroutine diag_atm_wiso_recv(FB, fldname, nf_16O, nf_18O, nf_HDO, areas, lats,
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_Field) :: lfield
real(r8), pointer :: data(:,:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -922,7 +917,6 @@ subroutine diag_atm_wiso_send(FB, fldname, nf_16O, nf_18O, nf_HDO, areas, lats,
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_Field) :: lfield
real(r8), pointer :: data(:,:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -979,7 +973,6 @@ subroutine med_phases_diag_lnd( gcomp, rc)
real(r8), pointer :: lfrac(:)
integer :: n,ip, ic
real(r8), pointer :: areas(:)
- type(ESMF_Field) :: lfield
character(*), parameter :: subName = '(med_phases_diag_lnd) '
! ------------------------------------------------------------------
@@ -1105,7 +1098,6 @@ subroutine diag_lnd(FB, fldname, nf, ic, areas, lfrac, budget, minus, rc)
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1139,7 +1131,6 @@ subroutine diag_lnd_wiso(FB, fldname, nf_16O, nf_18O, nf_HDO, ic, areas, lfrac,
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:,:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1177,7 +1168,7 @@ subroutine med_phases_diag_rof( gcomp, rc)
! local variables
type(InternalState) :: is_local
- integer :: ic, ip, n
+ integer :: ic, ip
real(r8), pointer :: areas(:)
character(*), parameter :: subName = '(med_phases_diag_rof) '
! ------------------------------------------------------------------
@@ -1266,7 +1257,6 @@ subroutine diag_rof(FB, fldname, nf, ic, areas, budget, minus, rc)
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1300,7 +1290,6 @@ subroutine diag_rof_wiso(FB, fldname, nf_16O, nf_18O, nf_HDO, ic, areas, budget,
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:,:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1386,7 +1375,6 @@ subroutine diag_glc(FB, fldname, nf, ic, areas, budget, minus, rc)
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1424,10 +1412,8 @@ subroutine med_phases_diag_ocn( gcomp, rc)
real(r8), pointer :: ifrac(:) ! ice fraction in ocean grid cell
real(r8), pointer :: ofrac(:) ! non-ice fraction nin ocean grid cell
real(r8), pointer :: sfrac(:) ! sum of ifrac and ofrac
- real(r8), pointer :: sfrac_x_ofrac(:)
real(r8), pointer :: areas(:)
real(r8), pointer :: data(:)
- type(ESMF_field) :: lfield
character(*), parameter :: subName = '(med_phases_diag_ocn) '
! ------------------------------------------------------------------
@@ -1605,7 +1591,6 @@ subroutine diag_ocn(FB, fldname, nf, ic, areas, frac, budget, scale, rc)
integer , intent(out) :: rc
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1639,7 +1624,6 @@ subroutine diag_ocn_wiso(FB, fldname, nf_16O, nf_18O, nf_HDO, ic, areas, frac, b
! local variables
integer :: n, ip
- type(ESMF_field) :: lfield
real(r8), pointer :: data(:,:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1675,7 +1659,6 @@ subroutine med_phases_diag_ice_ice2med( gcomp, rc)
real(r8), pointer :: ifrac(:)
real(r8), pointer :: areas(:)
real(r8), pointer :: lats(:)
- type(ESMF_field) :: lfield
character(*), parameter :: subName = '(med_phases_diag_ice_ice2med) '
! ------------------------------------------------------------------
@@ -1779,7 +1762,6 @@ subroutine diag_ice_recv(FB, fldname, nf, areas, lats, ifrac, budget, minus, sca
integer , intent(out) :: rc
! local variables
integer :: n, ic, ip
- type(ESMF_Field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1825,7 +1807,6 @@ subroutine diag_ice_recv_wiso(FB, fldname, nf_16O, nf_18O, nf_HDO, areas, lats,
integer , intent(out) :: rc
! local variables
integer :: n, ic, ip
- type(ESMF_Field) :: lfield
real(r8), pointer :: data(:,:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -1875,7 +1856,6 @@ subroutine med_phases_diag_ice_med2ice( gcomp, rc)
real(r8), pointer :: data(:)
real(r8), pointer :: areas(:)
real(r8), pointer :: lats(:)
- type(ESMF_Field) :: lfield
character(*), parameter :: subName = '(med_phases_diag_ice_med2ice) '
! ------------------------------------------------------------------
@@ -1967,7 +1947,6 @@ subroutine diag_ice_send(FB, fldname, nf, areas, lats, ifrac, budget, rc)
integer , intent(out) :: rc
! local variables
integer :: n, ic, ip
- type(ESMF_Field) :: lfield
real(r8), pointer :: data(:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -2001,7 +1980,6 @@ subroutine diag_ice_send_wiso(FB, fldname, nf_16O, nf_18O, nf_HDO, areas, lats,
! local variables
integer :: n, ic, ip
- type(ESMF_Field) :: lfield
real(r8), pointer :: data(:,:)
! ------------------------------------------------------------------
rc = ESMF_SUCCESS
@@ -2044,14 +2022,15 @@ subroutine med_phases_diag_print(gcomp, rc)
integer :: tod
integer :: output_level ! print level
logical :: sumdone ! has a sum been computed yet
- character(CS) :: cvalue
integer :: ip
integer :: c_size ! number of component send/recvs
integer :: f_size ! number of fields
integer :: p_size ! number of period types
real(r8), allocatable :: datagpr(:,:,:)
- character(len=64) :: timestr
logical, save :: firstcall = .true.
+#ifdef DEBUG
+ character(len=CL) :: timestr
+#endif
character(*), parameter :: subName = '(med_phases_diag_print) '
! ------------------------------------------------------------------
@@ -2195,6 +2174,12 @@ subroutine med_diag_print_atm(data, ip, date, tod)
character(*), parameter:: subName = '(med_phases_diag_print_atm) '
! ------------------------------------------------------------------
+ ica = 0
+ icl = 0
+ icn = 0
+ ics = 0
+ ico = 0
+ str = ""
do ic = 1,2
if (ic == 1) then ! from atm to mediator
ica = c_atm_recv ! total from atm
@@ -2342,7 +2327,11 @@ subroutine med_diag_print_lnd_ice_ocn(data, ip, date, tod)
character(len=40) :: str ! string
character(*), parameter :: subName = '(med_diag_print_lnd_ice_ocn) '
! ------------------------------------------------------------------
-
+ icar = 0
+ icxs = 0
+ icxr = 0
+ icas = 0
+ str = ""
do ic = 1,4
if (ic == 1) then
@@ -2498,10 +2487,10 @@ subroutine med_diag_print_summary(data, ip, date, tod)
integer , intent(in) :: tod
! local variables
- integer :: ic,nf,is ! data array indicies
+ integer :: nf,is ! data array indicies
real(r8) :: atm_area, lnd_area, ocn_area
real(r8) :: ice_area_nh, ice_area_sh
- real(r8) :: sum_area, sum_area_tot
+ real(r8) :: sum_area
real(r8) :: net_water_atm , sum_net_water_atm
real(r8) :: net_water_lnd , sum_net_water_lnd
real(r8) :: net_water_rof , sum_net_water_rof
@@ -2526,7 +2515,6 @@ subroutine med_diag_print_summary(data, ip, date, tod)
real(r8) :: net_salt_ice_nh , sum_net_salt_ice_nh
real(r8) :: net_salt_ice_sh , sum_net_salt_ice_sh
real(r8) :: net_salt_tot , sum_net_salt_tot
- character(len=40) :: str
character(*), parameter:: subName = '(med_diag_print_summary) '
! ------------------------------------------------------------------
diff --git a/mediator/med_fraction_mod.F90 b/mediator/med_fraction_mod.F90
index 521ba000..2fd83972 100644
--- a/mediator/med_fraction_mod.F90
+++ b/mediator/med_fraction_mod.F90
@@ -152,7 +152,7 @@ subroutine med_fraction_init(gcomp, rc)
use med_internalstate_mod , only : compatm, compocn, compice, complnd
use med_internalstate_mod , only : comprof, compglc, compwav, compname
use med_internalstate_mod , only : mapfcopy, mapconsd, mapnstod_consd
- use med_internalstate_mod , only : InternalState, logunit, mastertask
+ use med_internalstate_mod , only : InternalState
use med_map_mod , only : med_map_routehandles_init, med_map_rh_is_created
use med_methods_mod , only : State_getNumFields => med_methods_State_getNumFields
use perf_mod , only : t_startf, t_stopf
@@ -165,7 +165,6 @@ subroutine med_fraction_init(gcomp, rc)
type(InternalState) :: is_local
type(ESMF_Field) :: field_src
type(ESMF_Field) :: field_dst
- type(ESMF_Field) :: lfield
real(R8), pointer :: frac(:)
real(R8), pointer :: ofrac(:)
real(R8), pointer :: aofrac(:)
@@ -178,7 +177,7 @@ subroutine med_fraction_init(gcomp, rc)
real(R8), pointer :: Si_imask(:)
real(R8), pointer :: So_omask(:)
real(R8), pointer :: Sa_ofrac(:)
- integer :: i,j,n,n1,ns
+ integer :: n,n1,ns
integer :: maptype
integer :: fieldCount
logical, save :: first_call = .true.
@@ -662,14 +661,12 @@ subroutine med_fraction_set(gcomp, rc)
! local variables
type(InternalState) :: is_local
- real(r8), pointer :: lfrac(:)
real(r8), pointer :: ifrac(:)
real(r8), pointer :: ofrac(:)
real(r8), pointer :: aofrac(:)
real(r8), pointer :: Si_ifrac(:)
real(r8), pointer :: Si_imask(:)
real(r8), pointer :: Sa_ofrac(:)
- type(ESMF_Field) :: lfield
type(ESMF_Field) :: field_src
type(ESMF_Field) :: field_dst
integer :: n
diff --git a/mediator/med_internalstate_mod.F90 b/mediator/med_internalstate_mod.F90
index 99baa2fe..52866ca4 100644
--- a/mediator/med_internalstate_mod.F90
+++ b/mediator/med_internalstate_mod.F90
@@ -208,12 +208,9 @@ subroutine med_internalstate_init(gcomp, rc)
! local variables
type(InternalState) :: is_local
logical :: ispresent, isset
- integer :: n, ns, n1, n2
- integer :: stat
- logical :: glc_present
+ integer :: n, ns, n1
character(len=8) :: cnum
character(len=CS) :: cvalue
- character(len=CL) :: cname
character(len=ESMF_MAXSTR) :: mesh_glc
character(len=CX) :: msgString
character(len=3) :: name
diff --git a/mediator/med_io_mod.F90 b/mediator/med_io_mod.F90
index 6d9b8d2f..6bd9a466 100644
--- a/mediator/med_io_mod.F90
+++ b/mediator/med_io_mod.F90
@@ -783,8 +783,6 @@ subroutine med_io_write_FB(filename, FB, whead, wdata, nx, ny, nt, &
type(ESMF_Field) :: field
type(ESMF_Mesh) :: mesh
type(ESMF_Distgrid) :: distgrid
- type(ESMF_VM) :: VM
- integer :: mpicom
integer :: rcode
integer :: nf,ns,ng
integer :: k,n
@@ -799,8 +797,6 @@ subroutine med_io_write_FB(filename, FB, whead, wdata, nx, ny, nt, &
character(CL) :: itemc ! string converted to char
character(CL) :: name1 ! var name
character(CL) :: cunit ! var units
- character(CL) :: lname ! long name
- character(CL) :: sname ! standard name
character(CL) :: lpre ! local prefix
integer :: lnx,lny
logical :: luse_float
@@ -819,7 +815,6 @@ subroutine med_io_write_FB(filename, FB, whead, wdata, nx, ny, nt, &
integer :: rank
integer :: ungriddedUBound(1) ! currently the size must equal 1 for rank 2 fields
integer :: gridToFieldMap(1) ! currently the size must equal 1 for rank 2 fields
- logical :: isPresent
logical :: atmtiles
integer :: ntiles = 1
character(CL), allocatable :: fieldNameList(:)
@@ -1216,8 +1211,6 @@ subroutine med_io_write_int1d(filename, idata, dname, whead, wdata, file_ind, rc
integer :: dimid(1)
type(var_desc_t) :: varid
character(CL) :: cunit ! var units
- character(CL) :: lname ! long name
- character(CL) :: sname ! standard name
integer :: lnx
integer :: lfile_ind
character(*),parameter :: subName = '(med_io_write_int1d) '
@@ -1274,6 +1267,11 @@ subroutine med_io_write_r8(filename, rdata, dname, whead, wdata, file_ind, rc)
rc = ESMF_SUCCESS
+ if(present(file_ind)) then
+ lfile_ind = file_ind
+ else
+ lfile_ind = 1
+ endif
if (whead) then
rcode = pio_def_var(io_file(lfile_ind),trim(dname),PIO_DOUBLE,varid)
if (rcode==PIO_NOERR) then
@@ -1322,6 +1320,11 @@ subroutine med_io_write_r81d(filename, rdata, dname, whead, wdata, file_ind, rc)
rc = ESMF_SUCCESS
+ if(present(file_ind)) then
+ lfile_ind = file_ind
+ else
+ lfile_ind = 1
+ endif
if (whead) then
lnx = size(rdata)
rcode = pio_def_dim(io_file(lfile_ind),trim(dname)//'_nx',lnx,dimid(1))
@@ -1365,8 +1368,6 @@ subroutine med_io_write_char(filename, rdata, dname, whead, wdata, file_ind, rc)
integer :: dimid(1)
type(var_desc_t) :: varid
character(CL) :: cunit ! var units
- character(CL) :: lname ! long name
- character(CL) :: sname ! standard name
integer :: lnx
integer :: lfile_ind
character(CL) :: charvar ! buffer for string read/write
@@ -1374,7 +1375,11 @@ subroutine med_io_write_char(filename, rdata, dname, whead, wdata, file_ind, rc)
!-------------------------------------------------------------------------------
rc = ESMF_SUCCESS
-
+ if(present(file_ind)) then
+ lfile_ind = file_ind
+ else
+ lfile_ind = 1
+ endif
if (whead) then
lnx = len(charvar)
rcode = pio_def_dim(io_file(lfile_ind),trim(dname)//'_len',lnx,dimid(1))
@@ -1534,7 +1539,7 @@ subroutine med_io_read_FB(filename, vm, FB, pre, frame, rc)
! local variables
type(ESMF_Field) :: lfield
integer :: rcode
- integer :: nf,ns,ng
+ integer :: nf
integer :: k,n,l
type(file_desc_t) :: pioid
type(var_desc_t) :: varid
@@ -1543,7 +1548,6 @@ subroutine med_io_read_FB(filename, vm, FB, pre, frame, rc)
character(CL) :: name1 ! var name
character(CL) :: lpre ! local prefix
real(r8) :: lfillvalue
- integer :: tmp(1)
integer :: rank, lsize
real(r8), pointer :: fldptr1(:), fldptr1_tmp(:)
real(r8), pointer :: fldptr2(:,:)
@@ -1740,17 +1744,15 @@ subroutine med_io_read_init_iodesc(FB, name1, pioid, iodesc, rc)
type(ESMF_Distgrid) :: distgrid
integer :: rcode
integer :: ns,ng
- integer :: n,ndims
+ integer :: ndims
integer, pointer :: dimid(:)
type(var_desc_t) :: varid
integer :: lnx,lny
- integer :: tmp(1)
integer, pointer :: minIndexPTile(:,:)
integer, pointer :: maxIndexPTile(:,:)
integer :: dimCount, tileCount
integer, pointer :: Dof(:)
character(CL) :: tmpstr
- integer :: rank
character(*),parameter :: subName = '(med_io_read_init_iodesc) '
!-------------------------------------------------------------------------------
@@ -2079,7 +2081,7 @@ subroutine med_io_date2ymd_long (date,year,month,day)
year =int(tdate/10000)
if (date < 0) year = -year
month = int( mod(tdate,10000_I8)/ 100)
- day = mod(tdate, 100_I8)
+ day = int(mod(tdate, 100_I8))
end subroutine med_io_date2ymd_long
!===============================================================================
diff --git a/mediator/med_map_mod.F90 b/mediator/med_map_mod.F90
index 6a05fa4f..2dcb3906 100644
--- a/mediator/med_map_mod.F90
+++ b/mediator/med_map_mod.F90
@@ -85,7 +85,7 @@ subroutine med_map_RouteHandles_initfrom_esmflds(gcomp, flds_scalar_name, llogun
use med_constants_mod , only : czero => med_constants_czero
use esmFlds , only : med_fldList_GetfldListFr, med_fldlist_type
use esmFlds , only : med_fld_GetFldInfo, med_fldList_entry_type
- use med_internalstate_mod , only : mapunset, compname, compocn, compatm
+ use med_internalstate_mod , only : mapunset, compname
use med_internalstate_mod , only : ncomps, nmappers, compname, mapnames, mapfcopy
! input/output variables
@@ -99,9 +99,8 @@ subroutine med_map_RouteHandles_initfrom_esmflds(gcomp, flds_scalar_name, llogun
type(ESMF_Field) :: fldsrc
type(ESMF_Field) :: flddst
integer :: n1,n2
- integer :: n,m,nf,id,nflds
+ integer :: nf
integer :: fieldCount
- character(len=CL) :: fieldname
type(ESMF_Field), pointer :: fieldlist(:)
type(ESMF_Field) :: field_src
character(len=CX) :: mapfile
@@ -348,7 +347,7 @@ subroutine med_map_routehandles_initfrom_field(n1, n2, fldsrc, flddst, mapindex,
use med_internalstate_mod , only : mapunset, mapnames, nmappers
use med_internalstate_mod , only : mapnstod, mapnstod_consd, mapnstod_consf, mapnstod_consd
use med_internalstate_mod , only : mapfillv_bilnr, mapbilnr_nstod, mapconsf_aofrac
- use med_internalstate_mod , only : ncomps, compatm, compice, compocn, compwav, complnd, compname
+ use med_internalstate_mod , only : compocn, compwav, complnd, compname, compatm
use med_internalstate_mod , only : coupling_mode, dststatus_print
use med_internalstate_mod , only : defaultMasks
use med_constants_mod , only : ispval_mask => med_constants_ispval_mask
@@ -654,7 +653,6 @@ logical function med_map_RH_is_created_RH3d(RHs,n1,n2,mapindex,rc)
integer , intent(out) :: rc
! local variables
- integer :: rc1, rc2
character(len=*), parameter :: subname=' (module_MED_map:med_map_RH_is_created_RH3d) '
!-----------------------------------------------------------
@@ -666,7 +664,7 @@ end function med_map_RH_is_created_RH3d
!================================================================================
- logical function med_map_RH_is_created_RH1d(RHs,mapindex,rc)
+ logical function med_map_RH_is_created_RH1d(RHs,mapindex,rc)
use ESMF , only : ESMF_RouteHandle, ESMF_RouteHandleIsCreated
use med_internalstate_mod , only : mapconsd, mapconsf, mapnstod
@@ -686,7 +684,7 @@ logical function med_map_RH_is_created_RH1d(RHs,mapindex,rc)
rc = ESMF_SUCCESS
rc1 = ESMF_SUCCESS
rc2 = ESMF_SUCCESS
-
+ med_map_RH_is_created_RH1d = .false.
mapexists = .false.
if (mapindex == mapnstod_consd .and. &
ESMF_RouteHandleIsCreated(RHs(mapnstod), rc=rc1) .and. &
@@ -720,9 +718,8 @@ subroutine med_map_packed_field_create(destcomp, flds_scalar_name, &
use ESMF
use esmFlds , only : med_fldList_entry_type, med_fldList_getNumFlds, med_fldList_type
use esmFlds , only : med_fld_getFldInfo
- use med_internalstate_mod , only : nmappers
- use med_internalstate_mod , only : ncomps, compatm, compice, compocn, compname, mapnames
- use med_internalstate_mod , only : packed_data_type
+ use med_internalstate_mod , only : compname, mapnames
+ use med_internalstate_mod , only : packed_data_type, nmappers
! input/output variables
integer , intent(in) :: destcomp
@@ -734,10 +731,9 @@ subroutine med_map_packed_field_create(destcomp, flds_scalar_name, &
integer , intent(out) :: rc
! local variables
- integer :: nf, nu, ns
+ integer :: nf, nu
integer, allocatable :: npacked(:)
integer :: fieldcount
- type(ESMF_Field) :: lfield
integer :: ungriddedUBound(1) ! currently the size must equal 1 for rank 2 fields
real(r8), pointer :: ptrsrc_packed(:,:)
real(r8), pointer :: ptrdst_packed(:,:)
@@ -746,7 +742,6 @@ subroutine med_map_packed_field_create(destcomp, flds_scalar_name, &
type(ESMF_Mesh) :: lmesh_src
type(ESMF_Mesh) :: lmesh_dst
integer :: mapindex
- integer :: numFlds
type(ESMF_Field), pointer :: fieldlist_src(:)
type(ESMF_Field), pointer :: fieldlist_dst(:)
type(med_fldlist_entry_type), pointer :: fldptr
@@ -953,12 +948,9 @@ subroutine med_map_field_packed(FBSrc, FBDst, FBFracSrc, field_normOne, packed_d
real(r8), pointer :: dataptr1d(:)
real(r8), pointer :: dataptr2d(:,:)
real(r8), pointer :: dataptr2d_packed(:,:)
- type(ESMF_Field) :: lfield
type(ESMF_Field) :: field_fracsrc
type(ESMF_Field), pointer :: fieldlist_src(:)
type(ESMF_Field), pointer :: fieldlist_dst(:)
- type(ESMF_Field) :: usrc, vsrc ! only used for 3d mapping of u,v
- type(ESMF_Field) :: udst, vdst ! only used for 3d mapping of u,v
real(r8), pointer :: data_norm(:)
real(r8), pointer :: data_dst(:,:)
character(len=*), parameter :: subname=' (module_MED_map:med_map_field_packed) '
diff --git a/mediator/med_merge_mod.F90 b/mediator/med_merge_mod.F90
index 7139fffd..fc2d5c96 100644
--- a/mediator/med_merge_mod.F90
+++ b/mediator/med_merge_mod.F90
@@ -64,15 +64,13 @@ subroutine med_merge_auto_multi_fldbuns(coupling_active, FBOut, FBfrac, FBImp, f
! local variables
type(med_fldList_entry_type), pointer :: fldptr
- integer :: nfld_out,nfld_in,nm
+ integer :: nfld_out,nm
integer :: compsrc
- integer :: num_merge_fields
integer :: num_merge_colon_fields
character(CL) :: merge_fields
character(CL) :: merge_field
character(CS) :: merge_type
character(CS) :: merge_fracname
- character(CS), pointer :: merge_field_names(:)
logical :: error_check = .false. ! TODO: make this an input argument
integer :: ungriddedUBound_out(1) ! size of ungridded dimension
integer :: fieldcount
@@ -218,14 +216,12 @@ subroutine med_merge_auto_single_fldbun(compsrc, FBOut, FBfrac, FBIn, fldListTo,
! local variables
type(med_fldList_entry_type), pointer :: fldptr
- integer :: nfld_out,nfld_in,nm
- integer :: num_merge_fields
+ integer :: nfld_out,nm
integer :: num_merge_colon_fields
character(CL) :: merge_fields
character(CL) :: merge_field
character(CS) :: merge_type
character(CS) :: merge_fracname
- character(CS) :: merge_field_name
integer :: ungriddedUBound_out(1) ! size of ungridded dimension
integer :: fieldcount
character(CL) , pointer :: fieldnamelist(:)
@@ -337,7 +333,6 @@ subroutine med_merge_auto_field(merge_type, field_out, ungriddedUBound_out, &
real(R8), pointer :: dpf1(:)
real(R8), pointer :: dpf2(:,:) ! intput pointers to 1d and 2d fields
real(R8), pointer :: dpw1(:) ! weight pointer
- character(CL) :: name
character(len=*),parameter :: subname=' (med_merge_mod: med_merge_auto_field)'
!---------------------------------------
@@ -544,7 +539,7 @@ subroutine med_merge_field_1D(FBout, fnameout, &
real(R8), pointer :: dataOut(:)
real(R8), pointer :: dataPtr(:)
real(R8), pointer :: wgt(:)
- integer :: lb1,ub1,i,j,n
+ integer :: lb1,ub1,i,n
logical :: wgtfound, FBinfound
integer :: dbrc
character(len=*),parameter :: subname='(med_merge_field_1D)'
diff --git a/mediator/med_methods_mod.F90 b/mediator/med_methods_mod.F90
index 203b1923..bd5b6079 100644
--- a/mediator/med_methods_mod.F90
+++ b/mediator/med_methods_mod.F90
@@ -68,8 +68,9 @@ module med_methods_mod
private med_methods_Mesh_Print
private med_methods_Grid_Print
private med_methods_Field_GetFldPtr
+#ifdef DIAGNOSE
private med_methods_Array_diagnose
-
+#endif
!-----------------------------------------------------------------------------
contains
!-----------------------------------------------------------------------------
@@ -242,13 +243,11 @@ subroutine med_methods_FB_init(FBout, flds_scalar_name, fieldNameList, FBgeom, S
integer , intent(out) :: rc
! local variables
- integer :: i,j,n,n1
+ integer :: n,n1
integer :: fieldCount,fieldCountgeom
- logical :: found
character(ESMF_MAXSTR) :: lname
type(ESMF_Field) :: field,lfield
type(ESMF_Mesh) :: lmesh
- type(ESMF_StaggerLoc) :: staggerloc
type(ESMF_MeshLoc) :: meshloc
integer :: ungriddedCount
integer :: ungriddedCount_in
@@ -658,7 +657,6 @@ subroutine med_methods_State_getNumFields(State, fieldnum, rc)
integer , intent(out) :: rc
! local variables
- integer :: n,itemCount
type(ESMF_Field), pointer :: fieldList(:)
character(len=*),parameter :: subname='(med_methods_State_getNumFields)'
! ----------------------------------------------
@@ -699,7 +697,7 @@ subroutine med_methods_FB_reset(FB, value, rc)
integer , intent(out) :: rc
! local variables
- integer :: i,j,n
+ integer :: n
integer :: fieldCount
character(ESMF_MAXSTR) ,pointer :: lfieldnamelist(:)
real(R8) :: lvalue
@@ -777,7 +775,7 @@ subroutine med_methods_State_reset(State, value, rc)
integer , intent(out) :: rc
! local variables
- integer :: i,j,n
+ integer :: n
integer :: fieldCount
character(ESMF_MAXSTR) ,pointer :: lfieldnamelist(:)
real(R8) :: lvalue
@@ -923,7 +921,7 @@ subroutine med_methods_FB_diagnose(FB, string, rc)
integer , intent(out) :: rc
! local variables
- integer :: i,j,n
+ integer :: n
integer :: fieldCount, lrank
character(ESMF_MAXSTR), pointer :: lfieldnamelist(:)
character(len=CL) :: lstring
@@ -993,7 +991,7 @@ subroutine med_methods_FB_diagnose(FB, string, rc)
end subroutine med_methods_FB_diagnose
!-----------------------------------------------------------------------------
-
+#ifdef DIAGNOSE
subroutine med_methods_Array_diagnose(array, string, rc)
! ----------------------------------------------
@@ -1041,7 +1039,7 @@ subroutine med_methods_Array_diagnose(array, string, rc)
endif
end subroutine med_methods_Array_diagnose
-
+#endif
!-----------------------------------------------------------------------------
subroutine med_methods_State_diagnose(State, string, rc)
@@ -1057,7 +1055,7 @@ subroutine med_methods_State_diagnose(State, string, rc)
integer , intent(out) :: rc
! local variables
- integer :: i,j,n
+ integer :: n
integer :: fieldCount, lrank
character(ESMF_MAXSTR) ,pointer :: lfieldnamelist(:)
character(len=CS) :: lstring
@@ -1140,7 +1138,6 @@ subroutine med_methods_FB_Field_diagnose(FB, fieldname, string, rc)
integer , intent(out) :: rc
! local variables
- integer :: lrank
character(len=CS) :: lstring
real(R8), pointer :: dataPtr1d(:)
real(R8), pointer :: dataPtr2d(:,:)
@@ -1738,7 +1735,6 @@ subroutine med_methods_State_GeomPrint(state, string, rc)
type(ESMF_Field) :: lfield
integer :: fieldcount
character(ESMF_MAXSTR) ,pointer :: lfieldnamelist(:)
- character(ESMF_MAXSTR) :: name
character(len=*),parameter :: subname='(med_methods_State_GeomPrint)'
! ----------------------------------------------
@@ -2061,7 +2057,7 @@ subroutine med_methods_Grid_Print(grid, string, rc)
integer :: localDeCount
integer :: DeCount
integer :: dimCount, tileCount
- integer :: staggerlocCount, arbdimCount, rank
+ integer :: rank
type(ESMF_StaggerLoc) :: staggerloc
type(ESMF_TypeKind_Flag) :: coordTypeKind
character(len=32) :: staggerstr
@@ -2265,7 +2261,7 @@ subroutine med_methods_State_GetScalar(state, scalar_id, scalar_value, flds_scal
integer, intent(inout) :: rc
! local variables
- integer :: mytask, ierr, len, icount
+ integer :: mytask, icount
type(ESMF_VM) :: vm
type(ESMF_Field) :: field
real(R8), pointer :: farrayptr(:,:)
diff --git a/mediator/med_phases_aofluxes_mod.F90 b/mediator/med_phases_aofluxes_mod.F90
index b3acbdeb..bf2061de 100644
--- a/mediator/med_phases_aofluxes_mod.F90
+++ b/mediator/med_phases_aofluxes_mod.F90
@@ -94,7 +94,6 @@ module med_phases_aofluxes_mod
type(ESMF_RouteHandle) :: rh_agrid2xgrid ! atm->xgrid mapping
type(ESMF_RouteHandle) :: rh_xgrid2ogrid ! xgrid->ocn mapping
type(ESMF_RouteHandle) :: rh_xgrid2agrid ! xgrid->atm mapping
- type(ESMF_RouteHandle) :: rh_ogrid2xgrid_2ndord ! ocn->xgrid mapping 2nd order conservative
type(ESMF_RouteHandle) :: rh_agrid2xgrid_2ndord ! atm->xgrid mapping 2nd order conservative
type(ESMF_RouteHandle) :: rh_agrid2xgrid_bilinr ! atm->xgrid mapping bilinear
type(ESMF_RouteHandle) :: rh_agrid2xgrid_patch ! atm->xgrid mapping patch
@@ -152,8 +151,6 @@ module med_phases_aofluxes_mod
real(R8) , pointer :: ssq (:) => null() ! saved sq
end type aoflux_out_type
- character(len=CS) :: aoflux_grid
-
character(*), parameter :: u_FILE_u = &
__FILE__
@@ -359,9 +356,7 @@ subroutine med_aofluxes_init(gcomp, aoflux_in, aoflux_out, rc)
! local variables
type(InternalState) :: is_local
- integer :: n
character(CL) :: cvalue
- character(len=CX) :: tmpstr
real(R8) :: flux_convergence ! convergence criteria for implicit flux computation
integer :: flux_max_iteration ! maximum number of iterations for convergence
logical :: coldair_outbreak_mod ! cold air outbreak adjustment (Mahrt & Sun 1995,MWR)
@@ -504,7 +499,6 @@ subroutine med_aofluxes_init_ogrid(gcomp, aoflux_in, aoflux_out, rc)
type(InternalState) :: is_local
character(len=CX) :: tmpstr
integer :: lsize
- integer :: fieldcount
type(ESMF_Field) :: lfield
type(ESMF_Mesh) :: lmesh
real(R8), pointer :: garea(:) => null()
@@ -608,7 +602,6 @@ subroutine med_aofluxes_init_agrid(gcomp, aoflux_in, aoflux_out, rc)
! Local variables
type(InternalState) :: is_local
integer :: lsize,n
- integer :: fieldcount
type(ESMF_Field) :: field_src
type(ESMF_Field) :: field_dst
real(r8), pointer :: dataptr1d(:)
@@ -764,7 +757,6 @@ subroutine med_aofluxes_init_xgrid(gcomp, aoflux_in, aoflux_out, rc)
integer , intent(out) :: rc
! Local variables
- integer :: n
integer :: lsize
type(InternalState) :: is_local
type(ESMF_Field) :: field_a
@@ -778,7 +770,6 @@ subroutine med_aofluxes_init_xgrid(gcomp, aoflux_in, aoflux_out, rc)
integer :: fieldcount
type(ESMF_CoordSys_Flag) :: coordSys
real(ESMF_KIND_R8) ,allocatable :: garea(:)
- character(ESMF_MAXSTR),allocatable :: fieldNameList(:)
character(len=*),parameter :: subname=' (med_aofluxes_init_xgrid) '
!-----------------------------------------------------------------------
@@ -974,12 +965,7 @@ subroutine med_aofluxes_update(gcomp, aoflux_in, aoflux_out, rc)
!
! Local variables
type(InternalState) :: is_local
- type(ESMF_Field) :: field_src
- type(ESMF_Field) :: field_dst
- integer :: n,i,nf ! indices
- real(r8), pointer :: data_normdst(:)
- real(r8), pointer :: data_dst(:)
- integer :: maptype
+ integer :: n ! indices
real(r8), parameter :: qmin = 1.0e-8_r8
real(r8), parameter :: p0 = 100000.0_r8 ! reference pressure in Pa
real(r8), parameter :: rcp = 0.286_r8 ! gas constant of air / specific heat capacity at a constant pressure
@@ -1404,7 +1390,7 @@ subroutine med_aofluxes_map_xgrid2agrid_output(gcomp, rc)
type(ESMF_Field) :: field_src
type(ESMF_Field) :: field_dst
type(ESMF_Field) :: lfield
- integer :: n,i,nf ! indices
+ integer :: n,nf ! indices
real(r8), pointer :: data_src(:)
real(r8), pointer :: data_src_save(:)
real(r8), pointer :: data_dst(:)
@@ -1484,7 +1470,7 @@ subroutine med_aofluxes_map_xgrid2ogrid_output(gcomp, rc)
!
! Local variables
type(InternalState) :: is_local
- integer :: n,i,nf ! indices
+ integer :: nf ! indices
type(ESMF_Field) :: field_src
type(ESMF_Field) :: field_dst
character(*),parameter :: subName = '(med_aofluxes_map_xgrid2ogrid_output) '
diff --git a/mediator/med_phases_history_mod.F90 b/mediator/med_phases_history_mod.F90
index f98ece23..363118c8 100644
--- a/mediator/med_phases_history_mod.F90
+++ b/mediator/med_phases_history_mod.F90
@@ -164,14 +164,12 @@ subroutine med_phases_history_write(gcomp, rc)
logical :: isSet
type(ESMF_VM) :: vm
type(ESMF_Calendar) :: calendar ! calendar type
- integer :: i,m,n ! indices
- integer :: nx,ny ! global grid size
+ integer :: m,n ! indices
character(CL) :: time_units ! units of time variable
character(CL) :: hist_file ! history file name
real(r8) :: time_val ! time coordinate output
real(r8) :: time_bnds(2) ! time bounds output
logical :: write_now ! true => write to history type
- real(r8) :: tbnds(2) ! CF1.0 time bounds
type(ESMF_Time) :: starttime
type(ESMF_Time) :: currtime
type(ESMF_Time) :: nexttime
@@ -388,8 +386,7 @@ subroutine med_phases_history_write_med(gcomp, rc)
type(InternalState) :: is_local
type(ESMF_VM) :: vm
type(ESMF_Calendar) :: calendar ! calendar type
- integer :: i,m,n ! indices
- integer :: nx,ny ! global grid size
+ integer :: m ! indices
character(CL) :: time_units ! units of time variable
character(CL) :: hist_file ! history file name
real(r8) :: time_val ! time coordinate output
@@ -540,10 +537,9 @@ subroutine med_phases_history_write_lnd2glc(gcomp, fldbun, rc)
character(CL) :: time_units ! units of time variable
real(r8) :: time_val ! time coordinate output
real(r8) :: time_bnds(2) ! time bounds output
- character(len=CL) :: hist_str
character(len=CL) :: hist_file
integer :: m
- logical :: isPresent, isSet
+ logical :: isPresent
character(len=*), parameter :: subname='(med_phases_history_write_lnd2glc)'
!---------------------------------------
@@ -672,14 +668,13 @@ subroutine med_phases_history_write_comp_inst(gcomp, compid, instfile, rc)
logical :: isSet
type(ESMF_VM) :: vm
type(ESMF_Calendar) :: calendar ! calendar type
- integer :: i,m,n ! indices
+ integer :: m ! indices
integer :: nx,ny ! global grid size
character(CL) :: time_units ! units of time variable
character(CL) :: hist_file ! history file name
real(r8) :: time_val ! time coordinate output
real(r8) :: time_bnds(2) ! time bounds output
logical :: write_now ! true => write to history type
- real(r8) :: tbnds(2) ! CF1.0 time bounds
character(len=*), parameter :: subname='(med_phases_history_write_inst_comp)'
!---------------------------------------
@@ -830,14 +825,13 @@ subroutine med_phases_history_write_comp_avg(gcomp, compid, avgfile, rc)
logical :: isSet
type(ESMF_VM) :: vm
type(ESMF_Calendar) :: calendar ! calendar type
- integer :: i,m,n ! indices
+ integer :: m ! indices
integer :: nx,ny ! global grid size
character(CL) :: time_units ! units of time variable
character(CL) :: hist_file ! history file name
real(r8) :: time_val ! time coordinate output
real(r8) :: time_bnds(2) ! time bounds output
logical :: write_now ! true => write to history type
- real(r8) :: tbnds(2) ! CF1.0 time bounds
character(CS) :: scalar_name
character(len=*), parameter :: subname='(med_phases_history_write_comp_avg)'
!---------------------------------------
@@ -1052,11 +1046,9 @@ subroutine med_phases_history_write_comp_aux(gcomp, compid, auxcomp, rc)
integer :: fieldCount
logical :: found
logical :: enable_auxfile
- character(CS) :: timestr ! yr-mon-day-sec string
character(CL) :: time_units ! units of time variable
integer :: nx,ny ! global grid size
logical :: write_now ! if true, write time sample to file
- integer :: yr,mon,day,sec ! time units
real(r8) :: time_val ! time coordinate output
real(r8) :: time_bnds(2) ! time bounds output
character(CS), allocatable :: fieldNameList(:)
@@ -1345,7 +1337,6 @@ subroutine get_auxflds(str, flds, rc)
integer :: i,k,n ! generic indecies
integer :: nflds ! allocatable size of flds
integer :: count ! counts occurances of char
- integer :: kFlds ! number of fields in list
integer :: i0,i1 ! name = list(i0:i1)
integer :: nChar ! temporary
logical :: valid ! check if str is valid
@@ -1419,15 +1410,12 @@ subroutine med_phases_history_fldbun_accum(fldbun, fldbun_accum, count, rc)
type(ESMF_Field) :: lfield_accum
integer :: fieldCount_accum
character(CL), pointer :: fieldnames_accum(:)
- integer :: fieldCount
- character(CL), pointer :: fieldnames(:)
real(r8), pointer :: dataptr1d(:)
real(r8), pointer :: dataptr2d(:,:)
real(r8), pointer :: dataptr1d_accum(:)
real(r8), pointer :: dataptr2d_accum(:,:)
integer :: ungriddedUBound_accum(1)
integer :: ungriddedUBound(1)
- character(len=64) :: msg
!---------------------------------------
rc = ESMF_SUCCESS
@@ -1492,7 +1480,7 @@ subroutine med_phases_history_fldbun_average(fldbun_accum, count, rc)
integer , intent(out) :: rc
! local variables
- integer :: n,i
+ integer :: n
type(ESMF_Field) :: lfield_accum
integer :: fieldCount
character(CL), pointer :: fieldnames(:)
@@ -1557,7 +1545,6 @@ subroutine med_phases_history_init_histclock(gcomp, hclock, alarm, alarmname, hi
! local variables
type(ESMF_Clock) :: mclock, dclock
type(ESMF_Time) :: StartTime
- type(ESMF_TimeInterval) :: htimestep
type(ESMF_TimeInterval) :: mtimestep, dtimestep
integer :: msec, dsec
character(len=*), parameter :: subname='(med_phases_history_init_histclock) '
@@ -1735,7 +1722,6 @@ subroutine med_phases_history_set_timeinfo(gcomp, hclock, alarmname, &
integer :: yr,mon,day,sec ! time units
integer :: start_ymd ! Starting date YYYYMMDD
logical :: isPresent
- logical :: isSet
character(len=*), parameter :: subname='(med_phases_history_set_timeinfo) '
!---------------------------------------
diff --git a/mediator/med_phases_ocnalb_mod.F90 b/mediator/med_phases_ocnalb_mod.F90
index 0fd6773c..ecaf9956 100644
--- a/mediator/med_phases_ocnalb_mod.F90
+++ b/mediator/med_phases_ocnalb_mod.F90
@@ -26,10 +26,11 @@ module med_phases_ocnalb_mod
!--------------------------------------------------------------------------
! Private interfaces
!--------------------------------------------------------------------------
-
+#ifdef CESMCOUPLED
private med_phases_ocnalb_init
- private med_phases_ocnalb_orbital_init
private med_phases_ocnalb_orbital_update
+ private med_phases_ocnalb_orbital_init
+#endif
!--------------------------------------------------------------------------
! Private data
@@ -49,14 +50,14 @@ module med_phases_ocnalb_mod
! Conversion from degrees to radians
character(*),parameter :: u_FILE_u = &
__FILE__
-
+#ifdef CESMCOUPLED
character(len=CL) :: orb_mode ! attribute - orbital mode
integer :: orb_iyear ! attribute - orbital year
integer :: orb_iyear_align ! attribute - associated with model year
real(R8) :: orb_obliq ! attribute - obliquity in degrees
real(R8) :: orb_mvelp ! attribute - moving vernal equinox longitude
real(R8) :: orb_eccen ! attribute and update- orbital eccentricity
-
+#endif
character(len=*) , parameter :: orb_fixed_year = 'fixed_year'
character(len=*) , parameter :: orb_variable_year = 'variable_year'
character(len=*) , parameter :: orb_fixed_parameters = 'fixed_parameters'
@@ -64,7 +65,7 @@ module med_phases_ocnalb_mod
!===============================================================================
contains
!===============================================================================
-
+#ifdef CESMCOUPLED
subroutine med_phases_ocnalb_init(gcomp, ocnalb, rc)
!-----------------------------------------------------------------------
@@ -91,13 +92,11 @@ subroutine med_phases_ocnalb_init(gcomp, ocnalb, rc)
type(ESMF_Mesh) :: lmesh
integer :: n
integer :: lsize
- integer :: dimCount
integer :: spatialDim
integer :: numOwnedElements
type(InternalState) :: is_local
real(R8), pointer :: ownedElemCoords(:)
character(len=CL) :: tempc1,tempc2
- logical :: mastertask
integer :: fieldCount
type(ESMF_Field), pointer :: fieldlist(:)
character(*), parameter :: subname = '(med_phases_ocnalb_init) '
@@ -193,7 +192,7 @@ subroutine med_phases_ocnalb_init(gcomp, ocnalb, rc)
call t_stopf('MED:'//subname)
end subroutine med_phases_ocnalb_init
-
+#endif
!===============================================================================
subroutine med_phases_ocnalb_run(gcomp, rc)
@@ -216,7 +215,7 @@ subroutine med_phases_ocnalb_run(gcomp, rc)
! input/output variables
type(ESMF_GridComp) :: gcomp
integer, intent(out) :: rc
-
+#ifdef CESMCOUPLED
! local variables
type(ocnalb_type), save :: ocnalb
type(ESMF_VM) :: vm
@@ -226,7 +225,6 @@ subroutine med_phases_ocnalb_run(gcomp, rc)
type(InternalState) :: is_local
type(ESMF_Clock) :: clock
type(ESMF_Time) :: currTime
- type(ESMF_Time) :: nextTime
type(ESMF_TimeInterval) :: timeStep
character(CL) :: cvalue
character(CS) :: starttype ! config start type
@@ -238,7 +236,7 @@ subroutine med_phases_ocnalb_run(gcomp, rc)
real(R8), pointer :: ifrac(:)
real(R8), pointer :: ifrad(:)
integer :: lsize ! local size
- integer :: n,i ! indices
+ integer :: n ! indices
real(R8) :: rlat ! gridcell latitude in radians
real(R8) :: rlon ! gridcell longitude in radians
real(R8) :: cosz ! Cosine of solar zenith angle
@@ -255,7 +253,7 @@ subroutine med_phases_ocnalb_run(gcomp, rc)
logical :: first_call = .true.
character(len=*) , parameter :: subname='(med_phases_ocnalb_run)'
!---------------------------------------
-
+#endif
rc = ESMF_SUCCESS
#ifndef CESMCOUPLED
@@ -443,7 +441,7 @@ subroutine med_phases_ocnalb_run(gcomp, rc)
end subroutine med_phases_ocnalb_run
!===============================================================================
-
+#ifdef CESMCOUPLED
subroutine med_phases_ocnalb_orbital_init(gcomp, logunit, mastertask, rc)
!----------------------------------------------------------
@@ -462,6 +460,7 @@ subroutine med_phases_ocnalb_orbital_init(gcomp, logunit, mastertask, rc)
integer , intent(out) :: rc ! output error
! local variables
+
character(len=CL) :: msgstr ! temporary
character(len=CL) :: cvalue ! temporary
character(len=*) , parameter :: subname = "(med_phases_ocnalb_orbital_init)"
@@ -469,7 +468,6 @@ subroutine med_phases_ocnalb_orbital_init(gcomp, logunit, mastertask, rc)
rc = ESMF_SUCCESS
-#ifdef CESMCOUPLED
! Determine orbital attributes from input
call NUOPC_CompAttributeGet(gcomp, name="orb_mode", value=cvalue, rc=rc)
if (chkerr(rc,__LINE__,u_FILE_u)) return
@@ -539,8 +537,6 @@ subroutine med_phases_ocnalb_orbital_init(gcomp, logunit, mastertask, rc)
rc = ESMF_FAILURE
return ! bail out
endif
-#endif
-
end subroutine med_phases_ocnalb_orbital_init
!===============================================================================
@@ -575,8 +571,7 @@ subroutine med_phases_ocnalb_orbital_update(clock, logunit, mastertask, eccen,
!-------------------------------------------
rc = ESMF_SUCCESS
-
-#ifdef CESMCOUPLED
+ lprint = .false.
if (trim(orb_mode) == trim(orb_variable_year)) then
call ESMF_ClockGet(clock, CurrTime=CurrTime, rc=rc)
if (chkerr(rc,__LINE__,u_FILE_u)) return
@@ -604,9 +599,9 @@ subroutine med_phases_ocnalb_orbital_update(clock, logunit, mastertask, eccen,
call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msgstr, line=__LINE__, file=__FILE__, rcToReturn=rc)
return ! bail out
endif
-#endif
end subroutine med_phases_ocnalb_orbital_update
+#endif
!===============================================================================
diff --git a/mediator/med_phases_post_atm_mod.F90 b/mediator/med_phases_post_atm_mod.F90
index 3cf2b64d..9ed1b78d 100644
--- a/mediator/med_phases_post_atm_mod.F90
+++ b/mediator/med_phases_post_atm_mod.F90
@@ -28,7 +28,7 @@ subroutine med_phases_post_atm(gcomp, rc)
use ESMF , only : ESMF_GridComp, ESMF_GridCompGet, ESMF_FieldBundleGet
use ESMF , only : ESMF_LogWrite, ESMF_LOGMSG_INFO, ESMF_SUCCESS
use med_kind_mod , only : CX=>SHR_KIND_CX, CS=>SHR_KIND_CS, CL=>SHR_KIND_CL, R8=>SHR_KIND_R8
- use med_internalstate_mod , only : InternalState, mastertask, logunit
+ use med_internalstate_mod , only : InternalState
use med_phases_history_mod, only : med_phases_history_write_comp
use med_map_mod , only : med_map_field_packed
use med_constants_mod , only : dbug_flag => med_constants_dbug_flag
diff --git a/mediator/med_phases_post_glc_mod.F90 b/mediator/med_phases_post_glc_mod.F90
index 891ee5dd..c61097f9 100644
--- a/mediator/med_phases_post_glc_mod.F90
+++ b/mediator/med_phases_post_glc_mod.F90
@@ -90,10 +90,8 @@ subroutine med_phases_post_glc(gcomp, rc)
! local variables
type(ESMF_Clock) :: dClock
- type(ESMF_StateItem_Flag) :: itemType
type(InternalState) :: is_local
- integer :: n1,ncnt,ns
- real(r8) :: nextsw_cday
+ integer :: ns
logical :: first_call = .true.
logical :: isPresent
character(CL) :: cvalue
@@ -242,9 +240,7 @@ subroutine map_glc2lnd_init(gcomp, rc)
type(ESMF_Field) :: lfield_l
type(ESMF_Mesh) :: mesh_l
integer :: ungriddedUBound_output(1)
- integer :: fieldCount
- integer :: ns,n
- type(ESMF_Field), pointer :: fieldlist(:)
+ integer :: ns
character(len=*) , parameter :: subname='(map_glc2lnd_init)'
!---------------------------------------
@@ -360,10 +356,7 @@ subroutine map_glc2lnd( gcomp, rc)
! local variables
type(InternalState) :: is_local
- type(ESMF_Field) :: lfield
- type(ESMF_Field) :: lfield_src
- type(ESMF_Field) :: lfield_dst
- integer :: ec, l, g, ns, n
+ integer :: ec, l, ns
real(r8) :: topo_virtual
real(r8), pointer :: icemask_g(:) ! glc ice mask field on glc grid
real(r8), pointer :: frac_g(:) ! total ice fraction in each glc cell
@@ -374,9 +367,7 @@ subroutine map_glc2lnd( gcomp, rc)
real(r8), pointer :: frac_x_icemask_g_ec(:,:) ! (glc fraction) x (icemask), on the glc grid
real(r8), pointer :: frac_x_icemask_l_ec(:,:)
real(r8), pointer :: topo_x_icemask_g_ec(:,:)
- real(r8), pointer :: topo_x_icemask_l_ec(:,:)
real(r8), pointer :: dataptr1d(:)
- real(r8), pointer :: dataptr2d(:,:)
real(r8), pointer :: frac_l_ec_sum(:,:)
real(r8), pointer :: topo_l_ec_sum(:,:)
real(r8), pointer :: dataptr1d_src(:)
diff --git a/mediator/med_phases_post_ice_mod.F90 b/mediator/med_phases_post_ice_mod.F90
index d081448e..73936952 100644
--- a/mediator/med_phases_post_ice_mod.F90
+++ b/mediator/med_phases_post_ice_mod.F90
@@ -28,9 +28,9 @@ subroutine med_phases_post_ice(gcomp, rc)
use med_methods_mod , only : FB_diagnose => med_methods_FB_diagnose
use med_map_mod , only : med_map_field_packed
use med_fraction_mod , only : med_fraction_set
- use med_internalstate_mod , only : InternalState, mastertask
+ use med_internalstate_mod , only : InternalState
use med_phases_history_mod, only : med_phases_history_write_comp
- use med_internalstate_mod , only : compice, compatm, compocn, compwav
+ use med_internalstate_mod , only : compice, compocn, compwav
use perf_mod , only : t_startf, t_stopf
! input/output variables
diff --git a/mediator/med_phases_post_lnd_mod.F90 b/mediator/med_phases_post_lnd_mod.F90
index d057506a..589698fa 100644
--- a/mediator/med_phases_post_lnd_mod.F90
+++ b/mediator/med_phases_post_lnd_mod.F90
@@ -23,7 +23,7 @@ subroutine med_phases_post_lnd(gcomp, rc)
use med_utils_mod , only : chkerr => med_utils_ChkErr
use med_methods_mod , only : FB_diagnose => med_methods_FB_diagnose
use med_map_mod , only : med_map_field_packed
- use med_internalstate_mod , only : InternalState, mastertask
+ use med_internalstate_mod , only : InternalState
use med_phases_prep_rof_mod , only : med_phases_prep_rof_accum
use med_phases_prep_glc_mod , only : med_phases_prep_glc_accum_lnd, med_phases_prep_glc_avg
use med_phases_history_mod , only : med_phases_history_write_comp
diff --git a/mediator/med_phases_post_ocn_mod.F90 b/mediator/med_phases_post_ocn_mod.F90
index abf76621..bfc23450 100644
--- a/mediator/med_phases_post_ocn_mod.F90
+++ b/mediator/med_phases_post_ocn_mod.F90
@@ -26,7 +26,7 @@ subroutine med_phases_post_ocn(gcomp, rc)
use med_utils_mod , only : chkerr => med_utils_ChkErr
use med_constants_mod , only : dbug_flag => med_constants_dbug_flag
use med_map_mod , only : med_map_field_packed
- use med_internalstate_mod , only : InternalState, logunit, mastertask
+ use med_internalstate_mod , only : InternalState
use med_internalstate_mod , only : compice, compocn, compwav
use med_phases_history_mod , only : med_phases_history_write_comp
use med_phases_prep_glc_mod , only : med_phases_prep_glc_accum_ocn
diff --git a/mediator/med_phases_post_rof_mod.F90 b/mediator/med_phases_post_rof_mod.F90
index ea478b0c..aafeec01 100644
--- a/mediator/med_phases_post_rof_mod.F90
+++ b/mediator/med_phases_post_rof_mod.F90
@@ -21,10 +21,10 @@ subroutine med_phases_post_rof(gcomp, rc)
use ESMF , only : ESMF_LogWrite, ESMF_LOGMSG_INFO, ESMF_LOGMSG_ERROR, ESMF_SUCCESS, ESMF_FAILURE
use ESMF , only : ESMF_GridComp, ESMF_GridCompGet
use med_kind_mod , only : CX=>SHR_KIND_CX, CS=>SHR_KIND_CS, CL=>SHR_KIND_CL, R8=>SHR_KIND_R8
- use med_internalstate_mod , only : complnd, compocn, compice, compatm, comprof, compname
+ use med_internalstate_mod , only : complnd, compocn, compice, comprof
use med_utils_mod , only : chkerr => med_utils_ChkErr
use med_constants_mod , only : dbug_flag => med_constants_dbug_flag
- use med_internalstate_mod , only : InternalState, mastertask, logunit
+ use med_internalstate_mod , only : InternalState
use med_phases_history_mod, only : med_phases_history_write_comp
use med_map_mod , only : med_map_field_packed
use perf_mod , only : t_startf, t_stopf
diff --git a/mediator/med_phases_post_wav_mod.F90 b/mediator/med_phases_post_wav_mod.F90
index 31abf004..50592012 100644
--- a/mediator/med_phases_post_wav_mod.F90
+++ b/mediator/med_phases_post_wav_mod.F90
@@ -23,7 +23,7 @@ subroutine med_phases_post_wav(gcomp, rc)
use med_utils_mod , only : chkerr => med_utils_ChkErr
use med_methods_mod , only : FB_diagnose => med_methods_FB_diagnose
use med_map_mod , only : med_map_field_packed
- use med_internalstate_mod , only : InternalState, mastertask
+ use med_internalstate_mod , only : InternalState
use med_internalstate_mod , only : compwav, compatm, compocn, compice
use med_phases_history_mod, only : med_phases_history_write_comp
use perf_mod , only : t_startf, t_stopf
diff --git a/mediator/med_phases_prep_atm_mod.F90 b/mediator/med_phases_prep_atm_mod.F90
index 9448f691..47ef5928 100644
--- a/mediator/med_phases_prep_atm_mod.F90
+++ b/mediator/med_phases_prep_atm_mod.F90
@@ -46,13 +46,12 @@ subroutine med_phases_prep_atm(gcomp, rc)
! local variables
type(ESMF_Field) :: lfield
- character(len=64) :: timestr
type(InternalState) :: is_local
real(R8), pointer :: dataPtr1(:)
real(R8), pointer :: dataPtr2(:)
real(R8), pointer :: ifrac(:)
real(R8), pointer :: ofrac(:)
- integer :: i, j, n, n1, ncnt
+ integer :: n
type(med_fldlist_type), pointer :: fldList
character(len=*),parameter :: subname='(med_phases_prep_atm)'
!-------------------------------------------------------------------------------
diff --git a/mediator/med_phases_prep_glc_mod.F90 b/mediator/med_phases_prep_glc_mod.F90
index d47bbf46..a15eacc8 100644
--- a/mediator/med_phases_prep_glc_mod.F90
+++ b/mediator/med_phases_prep_glc_mod.F90
@@ -90,8 +90,6 @@ module med_phases_prep_glc_mod
type(ESMF_Field) :: field_icemask_l
type(ESMF_Field) :: field_frac_l
type(ESMF_Field) :: field_frac_l_ec
- type(ESMF_Field) :: field_lnd_icemask_l
- real(r8) , pointer :: aream_l(:) ! cell areas on land grid, for mapping
character(len=*), parameter :: qice_fieldname = 'Flgl_qice' ! Name of flux field giving surface mass balance
character(len=*), parameter :: Sg_frac_fieldname = 'Sg_ice_covered'
@@ -108,7 +106,6 @@ module med_phases_prep_glc_mod
character(len=14) :: fldnames_fr_ocn(2) = (/'So_t_depth','So_s_depth'/) ! TODO: what else needs to be added here
type(ESMF_DynamicMask) :: dynamicOcnMask
integer, parameter :: num_ocndepths = 7
- logical :: ocn_sends_depths = .false.
type(ESMF_Clock) :: prepglc_clock
character(*), parameter :: u_FILE_u = &
@@ -131,18 +128,10 @@ subroutine med_phases_prep_glc_init(gcomp, rc)
! local variables
type(InternalState) :: is_local
- type(ESMF_Clock) :: med_clock
- type(ESMF_ALARM) :: glc_avg_alarm
- character(len=CS) :: glc_avg_period
- type(ESMF_Time) :: starttime
- integer :: glc_cpl_dt
- integer :: i,n,ns,nf
+ integer :: n,ns,nf
type(ESMF_Mesh) :: mesh_l
type(ESMF_Mesh) :: mesh_o
type(ESMF_Field) :: lfield
- character(len=CS) :: cvalue
- real(r8), pointer :: data2d_in(:,:)
- real(r8), pointer :: data2d_out(:,:)
character(len=CS) :: glc_renormalize_smb
logical :: glc_coupled_fluxes
integer :: ungriddedUBound_output(1) ! currently the size must equal 1 for rank 2 fieldds
@@ -396,7 +385,6 @@ subroutine med_phases_prep_glc_accum_lnd(gcomp, rc)
! local variables
type(InternalState) :: is_local
- type(ESMF_Field) :: lfield
integer :: i,n
real(r8), pointer :: data2d_in(:,:)
real(r8), pointer :: data2d_out(:,:)
@@ -454,7 +442,6 @@ subroutine med_phases_prep_glc_accum_ocn(gcomp, rc)
! local variables
type(InternalState) :: is_local
- type(ESMF_Field) :: lfield
integer :: i,n
real(r8), pointer :: data2d_in(:,:)
real(r8), pointer :: data2d_out(:,:)
@@ -524,7 +511,7 @@ subroutine med_phases_prep_glc_avg(gcomp, rc)
integer :: yr_med, mon_med, day_med, sec_med
integer :: yr_prepglc, mon_prepglc, day_prepglc, sec_prepglc
type(ESMF_Alarm) :: alarm
- integer :: i, n, ns
+ integer :: n, ns
real(r8), pointer :: data2d(:,:)
real(r8), pointer :: data2d_import(:,:)
character(len=CS) :: cvalue
@@ -752,20 +739,16 @@ subroutine med_phases_prep_glc_map_lnd2glc(gcomp, rc)
! local variables
type(InternalState) :: is_local
real(r8), pointer :: topolnd_g_ec(:,:) ! topo in elevation classes
- real(r8), pointer :: dataptr_g(:) ! temporary data pointer for one elevation class
real(r8), pointer :: topoglc_g(:) ! ice topographic height on the glc grid extracted from glc import
real(r8), pointer :: data_ice_covered_g(:) ! data for ice-covered regions on the GLC grid
real(r8), pointer :: ice_covered_g(:) ! if points on the glc grid is ice-covered (1) or ice-free (0)
integer , pointer :: elevclass_g(:) ! elevation classes glc grid
real(r8), pointer :: dataexp_g(:) ! pointer into
real(r8), pointer :: dataptr2d(:,:)
- real(r8), pointer :: dataptr1d(:)
real(r8) :: elev_l, elev_u ! lower and upper elevations in interpolation range
real(r8) :: d_elev ! elev_u - elev_l
integer :: nfld, ec
- integer :: i,j,n,g,lsize_g,ns
- integer :: ungriddedUBound_output(1)
- type(ESMF_Field) :: lfield
+ integer :: n,lsize_g,ns
type(ESMF_Field) :: field_lfrac_l
integer :: fieldCount
character(len=3) :: cnum
@@ -1037,7 +1020,6 @@ subroutine med_phases_prep_glc_renormalize_smb(gcomp, ns, rc)
! local variables
type(InternalState) :: is_local
type(ESMF_VM) :: vm
- type(ESMF_Field) :: lfield
real(r8) , pointer :: qice_g(:) ! SMB (Flgl_qice) on glc grid without elev classes
real(r8) , pointer :: qice_l_ec(:,:) ! SMB (Flgl_qice) on land grid with elev classes
real(r8) , pointer :: topo_g(:) ! ice topographic height on the glc grid cell
@@ -1048,7 +1030,6 @@ subroutine med_phases_prep_glc_renormalize_smb(gcomp, ns, rc)
real(r8) , pointer :: icemask_l(:) ! icemask on land grid
real(r8) , pointer :: lfrac(:) ! land fraction on land grid
real(r8) , pointer :: dataptr1d(:) ! temporary 1d pointer
- real(r8) , pointer :: dataptr2d(:,:) ! temporary 2d pointer
integer :: ec ! loop index over elevation classes
integer :: n
diff --git a/mediator/med_phases_prep_ice_mod.F90 b/mediator/med_phases_prep_ice_mod.F90
index 6b8f9c8a..0b1b4075 100644
--- a/mediator/med_phases_prep_ice_mod.F90
+++ b/mediator/med_phases_prep_ice_mod.F90
@@ -37,7 +37,7 @@ subroutine med_phases_prep_ice(gcomp, rc)
use med_constants_mod , only : dbug_flag => med_constants_dbug_flag
use med_merge_mod , only : med_merge_auto
use med_internalstate_mod , only : InternalState, logunit, mastertask
- use med_internalstate_mod , only : compatm, compice, compocn, comprof
+ use med_internalstate_mod , only : compatm, compice, compocn
use med_internalstate_mod , only : coupling_mode
use esmFlds , only : med_fldList_GetFldListTo
use perf_mod , only : t_startf, t_stopf
@@ -49,16 +49,13 @@ subroutine med_phases_prep_ice(gcomp, rc)
! local variables
type(InternalState) :: is_local
type(ESMF_Field) :: lfield
- integer :: i,n
+ integer :: n
real(R8), pointer :: dataptr(:)
real(R8), pointer :: dataptr_scalar_ocn(:,:)
real(R8) :: precip_fact(1)
character(len=CS) :: cvalue
character(len=64), allocatable :: fldnames(:)
- real(r8) :: nextsw_cday
integer :: scalar_id
- real(r8) :: tmp(1)
- logical :: first_precip_fact_call = .true.
character(len=*),parameter :: subname='(med_phases_prep_ice)'
!---------------------------------------
diff --git a/mediator/med_phases_prep_lnd_mod.F90 b/mediator/med_phases_prep_lnd_mod.F90
index 20f953a6..64bced19 100644
--- a/mediator/med_phases_prep_lnd_mod.F90
+++ b/mediator/med_phases_prep_lnd_mod.F90
@@ -32,7 +32,7 @@ subroutine med_phases_prep_lnd(gcomp, rc)
use med_utils_mod , only : chkerr => med_utils_ChkErr
use med_constants_mod , only : dbug_flag => med_constants_dbug_flag
use med_internalstate_mod , only : complnd, compatm
- use med_internalstate_mod , only : InternalState, mastertask, logunit
+ use med_internalstate_mod , only : InternalState, mastertask
use med_merge_mod , only : med_merge_auto
use perf_mod , only : t_startf, t_stopf
@@ -44,11 +44,8 @@ subroutine med_phases_prep_lnd(gcomp, rc)
type(ESMF_StateItem_Flag) :: itemType
type(InternalState) :: is_local
type(ESMF_Field) :: lfield
- integer :: ncnt,ns
- real(r8) :: nextsw_cday
+ integer :: ncnt
integer :: scalar_id
- real(r8) :: tmp(1)
- real(r8), pointer :: dataptr2d(:,:)
logical :: first_call = .true.
logical :: field_found
type(med_fldlist_type), pointer :: fldList
diff --git a/mediator/med_phases_prep_ocn_mod.F90 b/mediator/med_phases_prep_ocn_mod.F90
index b8b4f2fa..981bc174 100644
--- a/mediator/med_phases_prep_ocn_mod.F90
+++ b/mediator/med_phases_prep_ocn_mod.F90
@@ -88,7 +88,7 @@ subroutine med_phases_prep_ocn_accum(gcomp, rc)
! local variables
type(InternalState) :: is_local
- integer :: n, ncnt
+ integer :: n
real(r8) :: glob_area_inv
real(r8), pointer :: tocn(:)
real(r8), pointer :: rain(:), hrain(:)
@@ -624,10 +624,6 @@ subroutine med_phases_prep_ocn_custom_nems(gcomp, rc)
! local variables
type(InternalState) :: is_local
- real(R8), pointer :: ocnwgt1(:)
- real(R8), pointer :: icewgt1(:)
- real(R8), pointer :: wgtp01(:)
- real(R8), pointer :: wgtm01(:)
real(R8), pointer :: customwgt(:)
real(R8), pointer :: ifrac(:)
real(R8), pointer :: ofrac(:)
diff --git a/mediator/med_phases_prep_rof_mod.F90 b/mediator/med_phases_prep_rof_mod.F90
index 0a899923..ef977524 100644
--- a/mediator/med_phases_prep_rof_mod.F90
+++ b/mediator/med_phases_prep_rof_mod.F90
@@ -90,7 +90,7 @@ subroutine med_phases_prep_rof_init(gcomp, rc)
! local variables
type(InternalState) :: is_local
- integer :: n, n1, nflds
+ integer :: n, nflds
type(ESMF_Mesh) :: mesh_l
type(ESMF_Mesh) :: mesh_r
type(ESMF_Field) :: lfield
@@ -197,9 +197,7 @@ subroutine med_phases_prep_rof_accum(gcomp, rc)
! local variables
type(InternalState) :: is_local
- integer :: i,j,n,ncnt
- integer :: fieldCount
- integer :: ungriddedUBound(1)
+ integer :: n
logical :: exists
real(r8), pointer :: dataptr1d(:)
real(r8), pointer :: dataptr1d_accum(:)
@@ -277,18 +275,13 @@ subroutine med_phases_prep_rof(gcomp, rc)
! local variables
type(InternalState) :: is_local
- integer :: i,j,n,n1,ncnt
+ integer :: n
integer :: count
logical :: exists
real(r8), pointer :: dataptr(:)
real(r8), pointer :: dataptr1d(:)
- type(ESMF_Field) :: field_irrig_flux
type(ESMF_Field) :: lfield
- type(ESMF_Field) :: lfield_src
- type(ESMF_Field) :: lfield_dst
- type(ESMF_Field) :: field_lfrac_lnd
type(med_fldList_type), pointer :: fldList
- character(CL), pointer :: lfieldnamelist(:)
character(len=*),parameter :: subname='(med_phases_prep_rof_mod: med_phases_prep_rof)'
!---------------------------------------
@@ -455,10 +448,6 @@ subroutine med_phases_prep_rof_irrig(gcomp, rc)
! local variables
integer :: r,l
type(InternalState) :: is_local
- integer :: fieldcount
- type(ESMF_Field) :: field_import_rof
- type(ESMF_Field) :: field_import_lnd
- type(ESMF_Field) :: field_irrig_flux
type(ESMF_Field) :: field_lfrac_lnd
type(ESMF_Mesh) :: lmesh_lnd
type(ESMF_Mesh) :: lmesh_rof
diff --git a/mediator/med_phases_prep_wav_mod.F90 b/mediator/med_phases_prep_wav_mod.F90
index 4fdd630e..8f0e9dcf 100644
--- a/mediator/med_phases_prep_wav_mod.F90
+++ b/mediator/med_phases_prep_wav_mod.F90
@@ -81,7 +81,6 @@ subroutine med_phases_prep_wav_accum(gcomp, rc)
! local variables
type(InternalState) :: is_local
- integer :: n, ncnt
character(len=*), parameter :: subname='(med_phases_prep_wav_accum)'
!---------------------------------------
diff --git a/mediator/med_phases_profile_mod.F90 b/mediator/med_phases_profile_mod.F90
index 46d8f2a7..7e9fb3c4 100644
--- a/mediator/med_phases_profile_mod.F90
+++ b/mediator/med_phases_profile_mod.F90
@@ -58,11 +58,13 @@ subroutine med_phases_profile(gcomp, rc)
type(ESMF_Time), save :: prevTime
type(ESMF_TimeInterval) :: ringInterval, timestep
type(ESMF_Alarm) :: alarm
- integer :: yr, mon, day, hr, min, sec
logical :: ispresent
logical :: alarmison=.false., stopalarmison=.false.
real(R8) :: current_time, wallclockelapsed, ypd
- real(r8) :: msize, mrss, ringdays
+ real(r8) :: ringdays
+#ifdef CESMCOUPLED
+ real(r8) :: msize, mrss
+#endif
real(r8), save :: avgdt
character(len=CL) :: walltimestr, nexttimestr
character(len=*), parameter :: subname='(med_phases_profile)'
@@ -185,6 +187,7 @@ subroutine med_phases_profile(gcomp, rc)
call shr_mem_getusage(msize,mrss,.true.)
write(logunit,105) ' memory_write: model date = ',trim(nexttimestr), &
' memory = ',msize,' MB (highwater) ',mrss,' MB (usage)'
+105 format( 3A, f10.2, A, f10.2, A)
#endif
previous_time = current_time
@@ -193,7 +196,6 @@ subroutine med_phases_profile(gcomp, rc)
iterations = iterations + 1
101 format( 5A, F8.2, A, F8.2, A, F8.2, A)
-105 format( 3A, f10.2, A, f10.2, A)
!---------------------------------------
!--- clean up
!---------------------------------------
diff --git a/mediator/med_phases_restart_mod.F90 b/mediator/med_phases_restart_mod.F90
index 5affb149..0331e1cb 100644
--- a/mediator/med_phases_restart_mod.F90
+++ b/mediator/med_phases_restart_mod.F90
@@ -58,8 +58,6 @@ subroutine med_phases_restart_alarm_init(gcomp, rc)
type(ESMF_Clock) :: mclock
type(ESMF_TimeInterval) :: mtimestep
type(ESMF_Time) :: mCurrTime
- type(ESMF_Time) :: mStartTime
- type(ESMF_TimeInterval) :: timestep
integer :: timestep_length
character(CL) :: cvalue ! attribute string
character(CL) :: restart_option ! freq_option setting (ndays, nsteps, etc)
@@ -175,11 +173,8 @@ subroutine med_phases_restart_write(gcomp, rc)
character(ESMF_MAXSTR) :: cpl_inst_tag ! instance tag
character(ESMF_MAXSTR) :: restart_dir ! Optional restart directory name
character(ESMF_MAXSTR) :: cvalue ! attribute string
- character(ESMF_MAXSTR) :: freq_option ! freq_option setting (ndays, nsteps, etc)
- integer :: freq_n ! freq_n setting relative to freq_option
logical :: alarmIsOn ! generic alarm flag
real(R8) :: tbnds(2) ! CF1.0 time bounds
- character(ESMF_MAXSTR) :: tmpstr
logical :: isPresent
logical :: first_time = .true.
character(len=*), parameter :: subname='(med_phases_restart_write)'
@@ -304,7 +299,7 @@ subroutine med_phases_restart_write(gcomp, rc)
trim(nexttimestr),'.nc'
if (mastertask) then
- restart_pfile = "rpointer.cpl"//cpl_inst_tag
+ restart_pfile = "rpointer.cpl"//trim(cpl_inst_tag)
call ESMF_LogWrite(trim(subname)//" write rpointer file = "//trim(restart_pfile), ESMF_LOGMSG_INFO)
open(newunit=unitn, file=restart_pfile, form='FORMATTED')
write(unitn,'(a)') trim(restart_file)
@@ -495,7 +490,7 @@ subroutine med_phases_restart_read(gcomp, rc)
type(ESMF_Time) :: currtime
character(len=CS) :: currtimestr
type(InternalState) :: is_local
- integer :: i,j,m,n
+ integer :: n
integer :: ierr, unitn
integer :: yr,mon,day,sec ! time units
character(ESMF_MAXSTR) :: case_name ! case name
@@ -543,7 +538,7 @@ subroutine med_phases_restart_read(gcomp, rc)
endif
! Get the restart file name from the pointer file
- restart_pfile = "rpointer.cpl"//cpl_inst_tag
+ restart_pfile = "rpointer.cpl"//trim(cpl_inst_tag)
if (mastertask) then
call ESMF_LogWrite(trim(subname)//" read rpointer file = "//trim(restart_pfile), ESMF_LOGMSG_INFO)
open(newunit=unitn, file=restart_pfile, form='FORMATTED', status='old', iostat=ierr)
diff --git a/mediator/med_time_mod.F90 b/mediator/med_time_mod.F90
index 5ba7f30a..93eb5346 100644
--- a/mediator/med_time_mod.F90
+++ b/mediator/med_time_mod.F90
@@ -86,7 +86,6 @@ subroutine med_time_alarmInit( clock, alarm, option, &
type(ESMF_Time) :: CurrTime ! Current Time
type(ESMF_Time) :: NextAlarm ! Next alarm time
type(ESMF_TimeInterval) :: AlarmInterval ! Alarm interval
- integer :: sec
character(len=*), parameter :: subname = '(med_time_alarmInit): '
!-------------------------------------------------------------------------------
diff --git a/mediator/med_utils_mod.F90 b/mediator/med_utils_mod.F90
index 9e34d1d4..7017180c 100644
--- a/mediator/med_utils_mod.F90
+++ b/mediator/med_utils_mod.F90
@@ -21,8 +21,8 @@ subroutine med_memcheck(string, level, mastertask)
character(len=*), intent(in) :: string
integer, intent(in) :: level
logical, intent(in) :: mastertask
- integer :: ierr
#ifdef CESMCOUPLED
+ integer :: ierr
integer, external :: GPTLprint_memusage
if((mastertask .and. memdebug_level > level) .or. memdebug_level > level+1) then
ierr = GPTLprint_memusage(string)
@@ -48,19 +48,21 @@ logical function med_utils_ChkErr(rc, line, file, mpierr)
logical, optional, intent(in) :: mpierr
#ifdef NO_MPI2
integer, parameter :: MPI_MAX_ERROR_STRING=80
+#else
+ integer :: ierr, len
#endif
character(MPI_MAX_ERROR_STRING) :: lstring
- integer :: lrc, len, ierr
+ integer :: lrc
med_utils_ChkErr = .false.
lrc = rc
if (present(mpierr)) then
if(mpierr) then
if (rc == MPI_SUCCESS) return
-#ifdef USE_MPI2
- call MPI_ERROR_STRING(rc, lstring, len, ierr)
-#else
+#ifdef NO_MPI2
write(lstring,*) "ERROR in mct mpi-serial library rc=",rc
+#else
+ call MPI_ERROR_STRING(rc, lstring, len, ierr)
#endif
call ESMF_LogWrite("ERROR: "//trim(lstring), ESMF_LOGMSG_INFO, line=line, file=file)
lrc = ESMF_FAILURE
diff --git a/ufs/flux_atmocn_mod.F90 b/ufs/flux_atmocn_mod.F90
index ca0bc200..3e5b5860 100644
--- a/ufs/flux_atmocn_mod.F90
+++ b/ufs/flux_atmocn_mod.F90
@@ -25,9 +25,9 @@ module flux_atmocn_mod
real(R8) :: loc_karman = shr_const_karman
real(R8) :: loc_g = shr_const_g
real(R8) :: loc_latvap = shr_const_latvap
- real(R8) :: loc_latice = shr_const_latice
+! real(R8) :: loc_latice = shr_const_latice
real(R8) :: loc_stebol = shr_const_stebol
- real(R8) :: loc_tkfrz = shr_const_tkfrz
+! real(R8) :: loc_tkfrz = shr_const_tkfrz
! These control convergence of the iterative flux calculation
! (For Large and Pond scheme only; not UA or COARE).
@@ -144,10 +144,6 @@ 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
- !!++ COARE only
- real(R8) :: zo,zot,zoq ! roughness lengths
- real(R8) :: hsb,hlb ! sens & lat heat flxs at zbot
- real(R8) :: trf,qrf,urf,vrf ! reference-height quantities
!--- local functions --------------------------------
real(R8) :: qsat ! function: the saturation humididty of air (kg/m^3)
diff --git a/ufs/glc_elevclass_mod.F90 b/ufs/glc_elevclass_mod.F90
index 3bcefc23..6524f064 100644
--- a/ufs/glc_elevclass_mod.F90
+++ b/ufs/glc_elevclass_mod.F90
@@ -29,7 +29,7 @@ module glc_elevclass_mod
!-----------------------------------------------------------------------
function glc_get_num_elevation_classes() result(num_elevation_classes)
integer :: num_elevation_classes ! function result
- integer :: rc
+ num_elevation_classes = 0
end function glc_get_num_elevation_classes
!-----------------------------------------------------------------------
@@ -52,6 +52,7 @@ function glc_mean_elevation_virtual(elevation_class, logunit) result(mean_elevat
real(r8) :: mean_elevation ! function result
integer, intent(in) :: elevation_class
integer, optional, intent(in) :: logunit
+ mean_elevation = 0.0_r8
end function glc_mean_elevation_virtual
!-----------------------------------------------------------------------