Skip to content

Commit befb25e

Browse files
committed
Removed compatibility with ESMF < 8
1 parent b64dff6 commit befb25e

3 files changed

Lines changed: 5 additions & 287 deletions

File tree

src/include/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ configure_file(
77
${CMAKE_CURRENT_BINARY_DIR}/include/version.h
88
)
99

10-
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include)
10+
#target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include)

src/utilities/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ set(UTILITIES_SOURCES
4949
nc_extract_variable.c
5050
nc_extract_variable_lasttime.c
5151
solver_library.F90
52-
${MOSSCO_SHA_OUTPUT} # Add generated file to sources
5352
)
5453

5554
target_sources(mossco_utilities PRIVATE ${UTILITIES_SOURCES})
@@ -101,7 +100,7 @@ find_package(NetCDF REQUIRED COMPONENTS Fortran C)
101100

102101
if(NetCDF_FOUND)
103102
message(STATUS "NetCDF found. Linking with NetCDF::NetCDF_Fortran and NetCDF::NetCDF_C.")
104-
target_link_libraries(mossco_utilities PRIVATE NetCDF::NetCDF_Fortran NetCDF::NetCDF_C)
103+
#target_link_libraries(mossco_utilities PRIVATE NetCDF::NetCDF_Fortran NetCDF::NetCDF_C)
105104
# Modern NetCDF targets should propagate their include directories.
106105
# If not, explicitly add:
107106
# target_include_directories(mossco_utilities PRIVATE ${NetCDF_INCLUDE_DIRS})
@@ -127,7 +126,7 @@ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "XL" OR CMAKE_Fortran_COMPILER_ID STRE
127126
endif()
128127

129128
# Add a dependency to ensure mossco_sha.F90 is generated before mossco_utilities is compiled
130-
add_dependencies(mossco_utilities ${MOSSCO_SHA_OUTPUT}) # This is not the right way for source files.
129+
#add_dependencies(mossco_utilities ${MOSSCO_SHA_OUTPUT}) # This is not the right way for source files.
131130
# The custom command output being part of UTILITIES_SOURCES handles this dependency.
132131

133132
message(STATUS "Configured mossco_utilities library.")

src/utilities/mossco_component.F90

Lines changed: 2 additions & 283 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
!> @brief Implementation of ESMF Component utilities
22
!
33
! This computer program is part of MOSSCO.
4-
!> @copyright 2021-2022 Helmholtz-Zentrum Hereon
5-
!> @copyright 2014-2021 Helmholtz-Zentrum Geesthacht
4+
!> @copyright 2021-2025 Helmholtz-Zentrum Hereon GmbH
5+
!> @copyright 2014-2021 Helmholtz-Zentrum Geesthacht GmbH
66
!> @copyright 2014-2021 Institut für Ostseeforschung Warnemünde
77
!> @author Carsten Lemmen <carsten.lemmen@hereon.de>
88
!> @author Knut Klingbeil <knut.klingbeil@io-warnemuende.de>
@@ -1137,145 +1137,6 @@ subroutine MOSSCO_GridCompLog(gridComp, kwe, log, rc)
11371137
endif
11381138
endif
11391139

1140-
#if ESMF_VERSION_MAJOR < 8
1141-
call ESMF_AttributeGet(gridComp, count=count , attCountFlag=ESMF_ATTGETCOUNT_ATTLINK, rc=localrc)
1142-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
1143-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1144-
write(message, '(A,I2,A)') trim(name)//' contains ', count, ' linked, '
1145-
1146-
!call ESMF_AttributeGet(gridComp, count=count , attCountFlag=ESMF_ATTGETCOUNT_TOTAL, rc=localrc)
1147-
!if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
1148-
! call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1149-
! write(message, '(A,I2,A)') trim(name)//' contains ', count, ' total, '
1150-
1151-
call ESMF_AttributeGet(gridComp, count=count, attCountFlag=ESMF_ATTGETCOUNT_ATTPACK, rc=localrc)
1152-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
1153-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1154-
write(message, '(A,I2,A)') trim(message), count, ' packed, and '
1155-
1156-
call ESMF_AttributeGet(gridComp, count=count, attCountFlag=ESMF_ATTGETCOUNT_ATTRIBUTE, rc=localrc)
1157-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
1158-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1159-
write(message, '(A,I2,A)') trim(message), count, ' single attributes'
1160-
1161-
if (present(log)) then
1162-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO, log=log)
1163-
else
1164-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO)
1165-
endif
1166-
1167-
call ESMF_AttributeGet(gridComp, count=count, rc=localrc)
1168-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1169-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1170-
1171-
do i=1, count
1172-
call ESMF_AttributeGet(gridComp, attributeIndex=i , name=attributeName, rc=localrc)
1173-
if (localrc /= ESMF_SUCCESS) cycle
1174-
1175-
write(message,'(A)') trim(name)//':'
1176-
call MOSSCO_MessageAdd(message,trim(attributeName)//' =')
1177-
1178-
call ESMF_AttributeGet(gridComp, name=attributeName, typekind=typekind, itemCount=itemCount, rc=localrc)
1179-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1180-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1181-
1182-
if (typekind==ESMF_TYPEKIND_Logical) then
1183-
call MOSSCO_MessageAdd(message,' (L)')
1184-
allocate(logicalValueList(itemCount))
1185-
call ESMF_AttributeGet(gridComp, name=attributeName, valueList=logicalValueList, rc=localrc)
1186-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1187-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1188-
1189-
write(string, '(L)') logicalValueList(1)
1190-
call MOSSCO_MessageAdd(message,' '//trim(string))
1191-
do j=2, itemCount-1
1192-
write(string, '(L)') logicalValueList(j)
1193-
call MOSSCO_MessageAdd(message,', '//trim(string))
1194-
enddo
1195-
deallocate(logicalValueList)
1196-
1197-
elseif (typekind==ESMF_TYPEKIND_CHARACTER) then
1198-
if (allocated(characterValueList)) deallocate(characterValueList)
1199-
allocate(characterValueList(itemCount))
1200-
call ESMF_AttributeGet(gridComp, name=attributeName, valueList=characterValueList, rc=localrc)
1201-
if (localrc /= ESMF_SUCCESS) then
1202-
!(ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) then
1203-
!call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1204-
!>@ todo: how to deal with very long attributes that don't fit into valueList?
1205-
rc=ESMF_SUCCESS
1206-
endif
1207-
1208-
call MOSSCO_MessageAdd(message,' "'//trim(characterValueList(1))//'"')
1209-
do j=2, itemCount-1
1210-
call MOSSCO_MessageAdd(message,', "'//trim(characterValueList(j))//'"')
1211-
enddo
1212-
if (allocated(characterValueList)) deallocate(characterValueList)
1213-
1214-
elseif (typekind==ESMF_TYPEKIND_I4) then
1215-
call MOSSCO_MessageAdd(message,' (I4)')
1216-
allocate(integer4ValueList(itemCount))
1217-
call ESMF_AttributeGet(gridComp, name=attributeName, valueList=integer4ValueList, rc=localrc)
1218-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1219-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1220-
1221-
write(string, '(I6.6)') integer4ValueList(1)
1222-
call MOSSCO_MessageAdd(message,' '//trim(string))
1223-
do j=2, itemCount-1
1224-
write(string, '(I6.6)') integer4ValueList(j)
1225-
call MOSSCO_MessageAdd(message,', '//trim(string))
1226-
enddo
1227-
deallocate(integer4ValueList)
1228-
elseif (typekind==ESMF_TYPEKIND_I8) then
1229-
call MOSSCO_MessageAdd(message,' (I8)')
1230-
allocate(integer8ValueList(itemCount))
1231-
call ESMF_AttributeGet(gridComp, name=attributeName, valueList=integer8ValueList, rc=localrc)
1232-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1233-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1234-
1235-
write(string, *) integer8ValueList(1)
1236-
call MOSSCO_MessageAdd(message,' '//trim(string))
1237-
do j=2, itemCount-1
1238-
write(string, *) integer8ValueList(j)
1239-
call MOSSCO_MessageAdd(message,', '//trim(string))
1240-
enddo
1241-
deallocate(integer8ValueList)
1242-
elseif (typekind==ESMF_TYPEKIND_R4) then
1243-
call MOSSCO_MessageAdd(message,' (R4)')
1244-
allocate(real4ValueList(itemCount))
1245-
call ESMF_AttributeGet(gridComp, name=attributeName, valueList=real4ValueList, rc=localrc)
1246-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1247-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1248-
1249-
write(string, '(ES9.2)') real4ValueList(1)
1250-
call MOSSCO_MessageAdd(message,' '//trim(string))
1251-
do j=2, itemCount-1
1252-
write(string, '(ES9.2)') real4ValueList(j)
1253-
call MOSSCO_MessageAdd(message,', '//trim(string))
1254-
enddo
1255-
deallocate(real4ValueList)
1256-
elseif (typekind==ESMF_TYPEKIND_R8) then
1257-
call MOSSCO_MessageAdd(message,' (R8)')
1258-
allocate(real8ValueList(itemCount))
1259-
call ESMF_AttributeGet(gridComp, name=attributeName, valueList=real8ValueList, rc=localrc)
1260-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1261-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1262-
1263-
write(string, '(ES9.2)') real8ValueList(1)
1264-
call MOSSCO_MessageAdd(message,' '//trim(string))
1265-
do j=2, itemCount-1
1266-
write(string, '(ES9.2)') real8ValueList(j)
1267-
call MOSSCO_MessageAdd(message,', '//trim(string))
1268-
enddo
1269-
deallocate(real8ValueList)
1270-
endif
1271-
if (present(log)) then
1272-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO, log=log)
1273-
else
1274-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO)
1275-
endif
1276-
enddo
1277-
#else ! ESMF version >= 8
1278-
12791140
if (present(log)) then
12801141
call MOSSCO_InfoLogObject(gridComp, log=log, rc=localrc)
12811142
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc_)
@@ -1291,7 +1152,6 @@ subroutine MOSSCO_GridCompLog(gridComp, kwe, log, rc)
12911152
else
12921153
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO)
12931154
endif
1294-
#endif
12951155

12961156
end subroutine MOSSCO_GridCompLog
12971157

@@ -1404,154 +1264,13 @@ subroutine MOSSCO_CplCompLog(cplComp, kwe, log, rc)
14041264
endif
14051265
endif
14061266

1407-
#if ESMF_VERSION_MAJOR < 8
1408-
call ESMF_AttributeGet(cplComp, count=count , attCountFlag=ESMF_ATTGETCOUNT_ATTLINK, rc=localrc)
1409-
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc_)
1410-
write(message, '(A,I2,A)') trim(name)//' contains ', count, ' linked, '
1411-
!call ESMF_AttributeGet(cplComp, count=count , attCountFlag=ESMF_ATTGETCOUNT_TOTAL, rc=localrc)
1412-
!_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc_)
1413-
! write(message, '(A,I2,A)') trim(name)//' contains ', count, ' total, '
1414-
1415-
call ESMF_AttributeGet(cplComp, count=count, attCountFlag=ESMF_ATTGETCOUNT_ATTPACK, rc=localrc)
1416-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
1417-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1418-
write(message, '(A,I2,A)') trim(message), count, ' packed, and '
1419-
1420-
call ESMF_AttributeGet(cplComp, count=count, attCountFlag=ESMF_ATTGETCOUNT_ATTRIBUTE, rc=localrc)
1421-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
1422-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1423-
write(message, '(A,I2,A)') trim(message), count, ' single attributes'
1424-
1425-
if (present(log)) then
1426-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO, log=log)
1427-
else
1428-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO, log=log)
1429-
endif
1430-
1431-
call ESMF_AttributeGet(cplComp, count=count, rc=localrc)
1432-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1433-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1434-
1435-
do i=1, count
1436-
call ESMF_AttributeGet(cplComp, attributeIndex=i , name=attributeName, rc=localrc)
1437-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1438-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1439-
1440-
write(message,'(A)') trim(name)//':'
1441-
call MOSSCO_MessageAdd(message,trim(attributeName)//' =')
1442-
1443-
call ESMF_AttributeGet(cplComp, name=attributeName, typekind=typekind, itemCount=itemCount, rc=localrc)
1444-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1445-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1446-
1447-
if (typekind==ESMF_TYPEKIND_Logical) then
1448-
call MOSSCO_MessageAdd(message,' (L)')
1449-
allocate(logicalValueList(itemCount))
1450-
call ESMF_AttributeGet(cplComp, name=attributeName, valueList=logicalValueList, rc=localrc)
1451-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1452-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1453-
1454-
write(string, '(L)') logicalValueList(1)
1455-
call MOSSCO_MessageAdd(message,' '//trim(string))
1456-
do j=2, itemCount-1
1457-
write(string, '(L)') logicalValueList(j)
1458-
call MOSSCO_MessageAdd(message,', '//trim(string))
1459-
enddo
1460-
deallocate(logicalValueList)
1461-
1462-
elseif (typekind==ESMF_TYPEKIND_CHARACTER) then
1463-
if (allocated(characterValueList)) deallocate(characterValueList)
1464-
allocate(characterValueList(itemCount))
1465-
call ESMF_AttributeGet(cplComp, name=attributeName, valueList=characterValueList, rc=localrc)
1466-
if (localrc /= ESMF_SUCCESS) then
1467-
!(ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) then
1468-
!call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1469-
!>@ todo: how to deal with very long attributes that don't fit into valueList?
1470-
rc=ESMF_SUCCESS
1471-
endif
1472-
1473-
call MOSSCO_MessageAdd(message, ' "'//trim(characterValueList(1))//'"')
1474-
do j=2, itemCount-1
1475-
call MOSSCO_MessageAdd(message, ', "'//trim(characterValueList(j))//'"')
1476-
enddo
1477-
if (allocated(characterValueList)) deallocate(characterValueList)
1478-
1479-
elseif (typekind==ESMF_TYPEKIND_I4) then
1480-
call MOSSCO_MessageAdd(message,' (I4)')
1481-
allocate(integer4ValueList(itemCount))
1482-
call ESMF_AttributeGet(cplComp, name=attributeName, valueList=integer4ValueList, rc=localrc)
1483-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1484-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1485-
1486-
write(string, '(I6.6)') integer4ValueList(1)
1487-
call MOSSCO_MessageAdd(message,' '//trim(string))
1488-
do j=2, itemCount-1
1489-
write(string, '(I6.6)') integer4ValueList(j)
1490-
call MOSSCO_MessageAdd(message,', '//trim(string))
1491-
enddo
1492-
if (allocated(integer4ValueList)) deallocate(integer4ValueList)
1493-
1494-
elseif (typekind==ESMF_TYPEKIND_I8) then
1495-
call MOSSCO_MessageAdd(message,' (I8)')
1496-
allocate(integer8ValueList(itemCount))
1497-
call ESMF_AttributeGet(cplComp, name=attributeName, valueList=integer8ValueList, rc=localrc)
1498-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1499-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1500-
1501-
write(string, *) integer8ValueList(1)
1502-
call MOSSCO_MessageAdd(message,' '//trim(string))
1503-
do j=2, itemCount-1
1504-
write(string, *) integer8ValueList(j)
1505-
call MOSSCO_MessageAdd(message,', '//trim(string))
1506-
enddo
1507-
deallocate(integer8ValueList)
1508-
1509-
elseif (typekind==ESMF_TYPEKIND_R4) then
1510-
call MOSSCO_MessageAdd(message,' R4)')
1511-
allocate(real4ValueList(itemCount))
1512-
call ESMF_AttributeGet(cplComp, name=attributeName, valueList=real4ValueList, rc=localrc)
1513-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1514-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1515-
1516-
write(string, '(ES9.2)') real4ValueList(1)
1517-
call MOSSCO_MessageAdd(message,' '//trim(string))
1518-
do j=2, itemCount-1
1519-
write(string, '(ES9.2)') real4ValueList(j)
1520-
call MOSSCO_MessageAdd(message,', '//trim(string))
1521-
enddo
1522-
deallocate(real4ValueList)
1523-
1524-
elseif (typekind==ESMF_TYPEKIND_R8) then
1525-
call MOSSCO_MessageAdd(message,' (R8)')
1526-
allocate(real8ValueList(itemCount))
1527-
call ESMF_AttributeGet(cplComp, name=attributeName, valueList=real8ValueList, rc=localrc)
1528-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc_)) &
1529-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
1530-
1531-
write(string, '(ES9.2)') real8ValueList(1)
1532-
call MOSSCO_MessageAdd(message,' '//trim(string))
1533-
do j=2, itemCount-1
1534-
write(string, '(ES9.2)') real8ValueList(j)
1535-
call MOSSCO_MessageAdd(message,', '//trim(string))
1536-
enddo
1537-
deallocate(real8ValueList)
1538-
1539-
endif
1540-
if (present(log)) then
1541-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO, log=log)
1542-
else
1543-
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_INFO)
1544-
endif
1545-
enddo
1546-
#else
15471267
if (present(log)) then
15481268
call MOSSCO_InfoLogObject(cplComp, log=log, rc=localrc)
15491269
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc_)
15501270
else
15511271
call MOSSCO_InfoLogObject(cplComp, rc=localrc)
15521272
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc_)
15531273
endif
1554-
#endif
15551274

15561275
end subroutine MOSSCO_CplCompLog
15571276

0 commit comments

Comments
 (0)