Compiling ROMS with ESMF

Discussion on computers, ROMS installation and compiling

Moderators: arango, robertson

Post Reply
Message
Author
turuncu
Posts: 128
Joined: Tue Feb 01, 2005 8:21 pm
Location: Istanbul Technical University (ITU)
Contact:

Compiling ROMS with ESMF

#1 Unread post by turuncu »

Hi,

I try to install ROMS using ESMF library but i get following error messages,

cd Build; /SFS2/progs/intel/impi/3.0/bin64/mpiifort -c -ip -O3 -xW -I/SFS2/progs/atmos/esmf-3.1.0r/mod/modO/Linux.intel.64.intelmp
i.default -I/SFS2/progs/atmos/esmf-3.1.0r/src/include esmf_roms.f90
fortcom: Error: esmf_roms.f90, line 1006: Name in only-list does not exist. [ROMS_IMPORT2D]
USE ROMS_import_mod, ONLY : ROMS_import2d
----------------------------------^fortcom: Error: esmf_roms.f90, line 505: There is no matching specific subroutine for this generic subroutine call. [ESMF_ARRAYGET
]
CALL ESMF_ArrayGet (romsGrdArray(igrid,ng), &
---------------^
fortcom: Error: esmf_roms.f90, line 523: Keyword arguments are invalid without an explicit interface. [RC]
& rc=status)
-----------------------------------^fortcom: Error: esmf_roms.f90, line 675: There is no matching specific subroutine for this generic subroutine call. [ESMF_ARRAYGET
]
CALL ESMF_ArrayGet (romsExpArray(i,ng), &
---------------^
fortcom: Error: esmf_roms.f90, line 693: Keyword arguments are invalid without an explicit interface. [RC]
& rc=status)
-----------------------------------^
fortcom: Error: esmf_roms.f90, line 740: There is no matching specific subroutine for this generic subroutine call. [ESMF_ARRAYGET
]
CALL ESMF_ArrayGet (romsImpArray(i,ng), &
---------------^
fortcom: Error: esmf_roms.f90, line 758: Keyword arguments are invalid without an explicit interface. [RC]
& rc=status)
-----------------------------------^
fortcom: Error: esmf_roms.f90, line 1516: This is an actual argument keyword name, and not a dummy argument name. [MPICOMM]
CALL ROMS_initialize (.TRUE., mpiCOMM=MyMPIcomm)
------------------------------------^
compilation aborted for esmf_roms.f90 (code 1)
make: *** [Build/esmf_roms.o] Error 1[/code]

I am using latest version of ROMS and ESMF 3.1.0r.

Any suggestion will be helpful,

Best,

--ufuk

turuncu
Posts: 128
Joined: Tue Feb 01, 2005 8:21 pm
Location: Istanbul Technical University (ITU)
Contact:

Re: Compiling ROMS with ESMF

#2 Unread post by turuncu »

Hi,

I think the problem is related with differences between versions of the ESMF. The coupling code is created with older version of ESMF. So, I apply following patch into Master/esmf_roms.F

552,553c552
< ! CALL ESMF_ArrayGet (romsGrdArray(igrid,ng), &
< CALL ESMF_ArrayGet (romsGrdArray(igrid,ng),0, &
---
> CALL ESMF_ArrayGet (romsGrdArray(igrid,ng), &
569,570c568
< ! CALL ESMF_StateAddArray (StateExport(Iocean), &
< CALL ESMF_StateAdd (StateExport(Iocean), &
---
> CALL ESMF_StateAddArray (StateExport(Iocean), &
734,735c732
< ! CALL ESMF_ArrayGet (romsExpArray(i,ng), &
< CALL ESMF_ArrayGet (romsExpArray(i,ng),0, &
---
> CALL ESMF_ArrayGet (romsExpArray(i,ng), &
751,752c748
< ! CALL ESMF_StateAddArray (ExportState, &
< CALL ESMF_StateAdd (ExportState, &
---
> CALL ESMF_StateAddArray (ExportState, &
801,802c797
< ! CALL ESMF_ArrayGet (romsImpArray(i,ng), &
< CALL ESMF_ArrayGet (romsImpArray(i,ng),0, &
---
> CALL ESMF_ArrayGet (romsImpArray(i,ng), &
818,819c813
< ! CALL ESMF_StateAddArray (ImportState, &
< CALL ESMF_StateAdd (ImportState, &
---
> CALL ESMF_StateAddArray (ImportState, &
1784c1778
< logical :: first = .TRUE.
---
>
1811,1812c1805
< ! CALL ROMS_initialize (.TRUE., mpiCOMM=MyMPIcomm)
< CALL ROMS_initialize (first, MyCOMM=MyMPIcomm)
---
> CALL ROMS_initialize (.TRUE., mpiCOMM=MyMPIcomm)

and now it is compiled without error. I just wonder does ROMS support regriding between models (such as WRF and ROMS)?

--ufuk

turuncu
Posts: 128
Joined: Tue Feb 01, 2005 8:21 pm
Location: Istanbul Technical University (ITU)
Contact:

Re: Compiling ROMS with ESMF

#3 Unread post by turuncu »

Hi,

I try to compile ROMS with ESMF library but it gives following error (after correcting some minor bug related with ESMF and AIX IBM XLF compiler),

"esmf_roms.f90", line 1009.11: 1513-119 (S) Identifier roms_import2d appeared in a USE statement but is not publicly accessible from this module.
"esmf_roms.f90", line 1063.46: 1514-088 (S) Invalid component name.
"esmf_roms.f90", line 1117.46: 1514-088 (S) Invalid component name.
"esmf_roms.f90", line 1160.11: 1514-221 (E) myrank to be accessed by use association, has the same name as another entity that has been referred to in this scoping unit. Use association will not be done.
"esmf_roms.f90", line 1298.11: 1514-221 (E) myrank to be accessed by use association, has the same name as another entity that has been referred to in this scoping unit. Use association will not be done.
"esmf_roms.f90", line 1564.37: 1513-066 (S) Argument keyword "mpicomm" does not match a dummy argument specified in the explicit interface for procedure "roms_initialize".

When i check the preprocessor definition, i saw that the first error (line 1009) is related with definition of MODEL_COUPLING definition and it is activated internally by defining any coupling option (in my case it is WRF_COUPLING). So, i add the WRF_COUPLING into my .h file and rebuild the code. After that the error is gone but the code gives another error as,

"main3d.f90", line 26.11: 1513-119 (S) Identifier ocn2atm_coupling appeared in a USE statement but is not publicly accessible from this module.

and Build/ocean_coupler.f90 file is empty. If you check the Master/ocean_coupler.F file, you can see that the content is only appear for MCT_LIB. So, i think, it is a bug. I can change the line 3 as,

#if defined MODEL_COUPLING && defined MCT_LIB

to

#if defined MODEL_COUPLING && (defined MCT_LIB || defined ESMF_LIB)

but i am not sure. Am i correct?

Thanks,

nperlin
Posts: 10
Joined: Sat Jan 10, 2004 12:55 am
Location: University of Miami/ Rosenstiel School of Marine and Atmospheric Science

Re: Compiling ROMS with ESMF

#4 Unread post by nperlin »

Dear turuncu,

Please, note that the ESMF-ROMS is still work-in-progress, to my understanding, in the sense that ESMF is still applied in the current SVN/trunk version as a wrapper for ROMS, and not yet coupled to other models like WRF or SWAN ) - thus #ifdef MODEL_COUPLING does not apply.

I've been working on ROMS-SWAN coupling under ESMF for some time (it does require quite a few preprocessing option/ conditional #ifdef/ modifications besides other things), its moving slowly but steadily towards having a working code. However, I don't know about the plans on ESMF-ROMS-WRF coupling.

All the best,
Natalie.

moghimi
Posts: 17
Joined: Fri Jan 29, 2010 6:17 pm
Contact:

Re: Compiling ROMS with ESMF

#5 Unread post by moghimi »

nperlin wrote:Dear turuncu,

Please, note that the ESMF-ROMS is still work-in-progress, to my understanding, in the sense that ESMF is still applied in the current SVN/trunk version as a wrapper for ROMS, and not yet coupled to other models like WRF or SWAN ) - thus #ifdef MODEL_COUPLING does not apply.

I've been working on ROMS-SWAN coupling under ESMF for some time (it does require quite a few preprocessing option/ conditional #ifdef/ modifications besides other things), its moving slowly but steadily towards having a working code. However, I don't know about the plans on ESMF-ROMS-WRF coupling.

All the best,
Natalie.
Hi
I am very new here, Is ESMF coupling for ROMS and SWAN has been finalised yet?
Regards
Saeed

nperlin
Posts: 10
Joined: Sat Jan 10, 2004 12:55 am
Location: University of Miami/ Rosenstiel School of Marine and Atmospheric Science

Re: Compiling ROMS with ESMF

#6 Unread post by nperlin »

moghimi wrote: Is ESMF coupling for ROMS and SWAN has been finalised yet?
Regards
Saeed
Dear Saeed,
I got a working/operational ESMF-SWAN-ROMS code some time ago, and had sent it to "ROMS headquarters", but the official version is yet to be updated.

Post Reply