[Wrf-users] passing external MPI_Comm to WRF
Ufuk Utku Turuncoglu
turuncu at be.itu.edu.tr
Tue Aug 11 15:06:46 MDT 2009
Hi,
Thanks for your help. I actually i try to create an ESMF driver that
couples WRF and ROMS using ESMF library. So, after sending mail to list
i realized same thing that you mention in your mail. Now i am calling
"wrf_set_dm_communicator" routine just before
call wrf_init(no_init1=.TRUE.)
call. Your solution seems working but model gives following message and
crash,
WRF V3.1 MODEL
wrf: calling alloc_and_configure_domain
*************************************
Parent domain
*************************************
Parent domain
ids,ide,jds,jde 1 210 1 144
ims,ime,jms,jme -4 215 66 149
ips,ipe,jps,jpe 1 210 73 144
ids,ide,jds,jde 1 210 1 144
ims,ime,jms,jme -4 215 -4 79
ips,ipe,jps,jpe 1 210 1 72
*************************************
*************************************
DYNAMICS OPTION: Eulerian Mass Coordinate
DYNAMICS OPTION: Eulerian Mass Coordinate
alloc_space_field: domain 1 , 294037696 bytes allocated
alloc_space_field: domain 1 , 294037696 bytes allocated
wrf: calling model_to_grid_config_rec
wrf: calling model_to_grid_config_rec
wrf: calling set_scalar_indices_from_config
wrf: calling init_wrfio
wrf: calling set_scalar_indices_from_config
wrf: calling init_wrfio
Entering ext_gr1_ioinit
Entering ext_gr1_ioinit
and part of the core content is,
# At location 0x000000010072971c but procedure information unavailable.
__module_domain_NMOD_domain_get_start_time : 0x000000d4
__module_domain_NMOD_domain_clock_get : 0x0000025c
__module_domain_NMOD_domain_alarm_create : 0x00000230
# At location 0x0000000100739864 but procedure information unavailable.
# At location 0x00000001007383e0 but procedure information unavailable.
__mod_atm_control_NMOD_wrf_setinitialize : 110 # in file
<mod_atm_control.f90>
# At location 0x0000000100075cc4 but procedure information unavailable.
# At location 0x0000000100075b54 but procedure information unavailable.
# At location 0x0000000100030e68 but procedure information unavailable.
# At location 0x000000010003aa78 but procedure information unavailable.
# At location 0x000000010007525c but procedure information unavailable.
# At location 0x000000010006d66c but procedure information unavailable.
# At location 0x0000000100067fd0 but procedure information unavailable.
driver : 208 # in file <driver.f90>
I think that i have to set WRF clock also. Am i right?
Thanks again,
--ufuk
John Michalakes wrote:
> It's been a little while since I tried this but it can be done. Change the
> PROGRAM declaration in main/wrf.F into a SUBROUTINE that takes an integer
> communicator as a argument. Then, before you call anything else in that main
> routine, call wrf_set_dm_communicator( communicator ), where communicator is
> the argument. Any WRF code that would try to initialize MPI (such as the
> code in module_io_quilt.F) calls MPI_INITIALIZED first. It will see that
> it's already been initialized and leave it alone. This and other parts of
> the WRF code will work with the passed-in communicator instead of
> MPI_COMM_WORLD.
>
> That's the theory, anyway. Let me know if you run into trouble.
>
> John
>
> -----------------------------------------------------------
> John Michalakes, Software Engineer michalak at ucar.edu
> NCAR, MMM Division voice: +1 303 497 8199
> 3450 Mitchell Lane fax: +1 303 497 8181
> Boulder, Colorado 80301 U.S.A. cell: +1 720 209 2320
> http://www.mmm.ucar.edu/individual/michalakes
> -----------------------------------------------------------
>
>
>
>
>
>> -----Original Message-----
>> From: wrf-users-bounces at ucar.edu [mailto:wrf-users-bounces at ucar.edu] On
>> Behalf Of Ufuk Utku Turuncoglu
>> Sent: Tuesday, August 11, 2009 2:23 PM
>> Cc: wrf-users at ucar.edu
>> Subject: [Wrf-users] passing external MPI_Comm to WRF
>>
>> Hi,
>>
>> I wonder that is there anybody out there who try to pass external MPI
>> communicator to WRF?
>>
>> I want to run WRF in a small set of processor that belongs to custom
>> created MPI comm world and i want to use this created comm world to run
>> WRF. I think that the main subroutine that can be used for this purpose
>> is 'init_modules' and phase 1. Is it necessary to modify I/O quilt for
>> this purpose?
>>
>> Anyway, please let me know, if my question is not clear.
>>
>> Thanks,
>>
>> --ufuk
>> _______________________________________________
>> Wrf-users mailing list
>> Wrf-users at ucar.edu
>> http://mailman.ucar.edu/mailman/listinfo/wrf-users
>>
>
>
>
More information about the Wrf-users
mailing list