Currently pioSystem (global variable in mizuRoute) is defined as a type in globalData.F90 here.
This shared variable is used for both standalone run and cesm-coupling run.
For standalone, pioSystem variable is created as a typehere and used throughout the run
For cesm-coupline, pioSystem is defined in the coupler as a pointer and assigned here.
since the function shr_pio_getiosys(inst_name) return a pointer, pioSystem should have been a pointer. So this creates inconsistency.
If pioSystem in globalData is defined as a pointer, standalone run produce the error, but if pioSystem in globalData is defined as a pointer, both standalone and cesm-coupled run work ok. So currently it is defined as a type, but unsure if this will break in the future or this breaks with other compilers than the ones we test.
Currently
pioSystem
(global variable in mizuRoute) is defined as a type in globalData.F90 here.This shared variable is used for both standalone run and cesm-coupling run.
For standalone,
pioSystem
variable is created as a type here and used throughout the runFor cesm-coupline,
pioSystem
is defined in the coupler as a pointer and assigned here. since the function shr_pio_getiosys(inst_name) return a pointer,pioSystem
should have been a pointer. So this creates inconsistency.If
pioSystem
in globalData is defined as a pointer, standalone run produce the error, but ifpioSystem
in globalData is defined as a pointer, both standalone and cesm-coupled run work ok. So currently it is defined as a type, but unsure if this will break in the future or this breaks with other compilers than the ones we test.This is also discussed in PR #431.
We will consult with Jim