[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