[MITgcm-support] question on sponge-layer/mpi
Uli Riemenschneider
uriemenschneider at whoi.edu
Thu Sep 9 16:00:58 EDT 2004
Sounds great. Please let me know when you've set that up, I'll be
watching this space!!
Thanks,
Uli
Patrick Heimbach wrote:
> Hi,
>
> there is a sponge layer code available in
> conjunction with obcs which, unfortunately,
> hasn't been merged to the main MITgcm repository
> so far (it has been part of the ECCO environment).
> We will try to do the merging next week
> and make this code available, so that you
> don't have to worry about tiles, mpi-id's etc.
>
> -Patrick
>
>
>
> Quoting Theo Gerkema <Theo.Gerkema at hmg.inpg.fr>:
>
>
>>Hi Uli,
>>
>>The problem arising on multiple processors has been solved.
>>
>>I've defined the sponge in external_forcing.F
>>by introducing the field rayleighz, as indicated previously.
>>(NB: one needs to add a line in DYNVARS.h too:
>> _RL rayleighz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) ).
>>To make it work on multiple processors, add the line
>> #include "EESUPPORT.h"
>>in external_forcing.F, and also, under !INPUT/OUTPUT PARAMETERS:
>> INTEGER mpiMyId
>>Then build a loop around the sponge:
>> IF (mpiMyId .EQ. 0) THEN
>> .....
>> ENDIF
>>
>>This way the sponge works only in the most leftward tile.
>>NB: my runs are basically 2d (3 points in y), and the tiles
>>are set up in x. I'm not sure the procedure works the same way
>>in a full 3d problem.
>>
>>-- Theo.
>>
>>
>>
>>Uli Riemenschneider wrote:
>>
>>
>>>Hi again,
>>>
>>>I was wondering if someone could give me a few pointers on how to setup
>>>a sponge layer in the MITgcm. Basically what I want to do is a kind of
>>>climatological relaxation to a fixed/prescribed background profile of
>>>temperature. Following the e-mails from Theo a few weeks back I have
>>>figured out that I need to add a bit of code in the temperature
>>>subroutine of external_forcing.F along the lines of what Theo outlined
>>>n his mail, but for the temperature field:
>>>
>>> DO j=jMin,jMax
>>> DO i=iMin+1,iMax-1
>>> gT(i,j,kLev,bi,bj) = gT(i,j,kLev,bi,bj)
>>> & +rayleighz(i,j,kLev,bi,bj)*
>>> & ('backgound Temp (tRef ?)' - gT(i,j,kLev,bi,bj))
>>> ENDDO
>>> ENDDO
>>>
>>>I am sure someone has done this kind of thing before so I was hoping I
>>>could get help with figuring out where to best add the sponge layer to
>>>the code. Plus I am also running the model on multiple processors and
>>>was wondering if the problem Theo was having has been resolved?
>>>
>>>Many thanks!
>>>Uli
>>>
>>>Quoting Theo Gerkema <Theo.Gerkema at hmg.inpg.fr>:
>>>
>>>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!
>>>
>>
>>
>>_______________________________________________
>>MITgcm-support mailing list
>>MITgcm-support at mitgcm.org
>>http://dev.mitgcm.org/mailman/listinfo/mitgcm-support
>>
>
>
>
> --------------------------------------------------------
> Patrick Heimbach Massachusetts Institute of Technology
> FON: +1/617/253-5259 EAPS, Room 54-1518
> FAX: +1/617/253-4464 77 Massachusetts Avenue
> mailto:heimbach at mit.edu Cambridge MA 02139
> http://www.mit.edu/~heimbach/ USA
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://dev.mitgcm.org/mailman/listinfo/mitgcm-support
>
>
--
*********************************************************
Ulrike Riemenschneider, Postdoctoral Investigator
Physical Oceanography Dept. MS #21
Woods Hole Oceanographic Institution
Woods Hole, MA 02543, USA
Phone: (+1) 508 289 2916 Fax: (+1) 508 457 2181
*********************************************************
More information about the MITgcm-support
mailing list