[MITgcm-support] question on sponge/tiles

Theo Gerkema Theo.Gerkema at hmg.inpg.fr
Fri Aug 20 10:53:18 EDT 2004


Hi Michael, Patrick,

Many thanks for your comments.
I've now tried to explicitly restrict the working of the sponge
to the tile at the left-end.
I've added an if-loop involving myid, but it seems as if myid
is just always zero.  Is there some other parameter that
can be used for identifying a specific tile?
Basically I'm following the "internal-wave" example, and
in compiling the code no use is made of SIZE.h_mpi or
files of a similar name (except SIZE.h, but here only nPx etc
are defined), and it's not clear to me where and how the
processors are laid out. Which parameter acts as a label of the tiles?

-- Theo.
 

m.r.schaferkotter wrote:

> greetings;
>
> if the sponge is on the left boundary (tile1), then you/ll have to 
> have explicit
> code (logical if) to only execute that code section if the processor 
> id corresponds
> to that particular tile.
>
> if (myid .eq. 0)then
>   execute the code
> endif
>
> (assuming myid corresponds to the processor that the code is running on,
> and assuming the tile containing the sponge layer is on processor 0. 
> (depends on how processors are laid out in SIZE.h_mpi).
>
> michael
>
> On Wednesday, August 18, 2004, at 05:31 AM, Theo Gerkema wrote:
>
>> Hi,
>>
>> Could someone help me sorting out the following problem:
>> in external_forcing.F I've added a sponge-layer; the sponge
>> covers (say) the first 100 points of the basin:
>>
>>      DO j=jMin,jMax
>>       DO i=iMin,iMax
>>        rayleighz(i,j,kLev,bi,bj)=0.
>>       ENDDO
>>      ENDDO
>>      DO j=jMin,jMax
>>       DO i=1,100
>>        rayleighz(i,j,kLev,bi,bj)=0.1*(100-i)/100.
>>       ENDDO
>>      ENDDO
>>
>> It works selectively on the baroclinic field (tides):
>>
>>        DO j=jMin,jMax
>>        DO i=iMin+1,iMax-1
>>         gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
>>     &   -rayleighz(i,j,kLev,bi,bj)*
>>     &    abs(uVel(i+1,j,kLev,bi,bj)-uVel(i-1,j,kLev,bi,bj))*
>>     &    uVel(i,j,kLev,bi,bj)
>>        ENDDO
>>       ENDDO
>>
>> This works well, but I've now started doing runs in parallel,
>> and if I run the code on for example two processors, an additional
>> sponge-layer appears halfway the basin (ie at the left end of the 2nd
>> sub-domain), rendering the results meaningless.
>> Is there a way I can avoid the repetition of the sponge in parallel
>> runs? Many thanks!
>>
>> -- Theo.
>>
>>
>> ***
>>
>> Theo GERKEMA
>> LEGI (Laboratoire des Ecoulements Géophysiques et Industriels)
>> BP 53
>> 38041 GRENOBLE Cedex 9
>> FRANCE
>>
>> tel: +33 (0)4 76 82 50 45
>> fax: +33 (0)4 76 82 52 71
>> theo.gerkema at hmg.inpg.fr
>>
>> http://www.nioz.nl/nioz_nl/a5923dfa5bb47febe911cbfa4048961c.php
>>
>> ~
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://dev.mitgcm.org/mailman/listinfo/mitgcm-support
>>
>
>





More information about the MITgcm-support mailing list