[MITgcm-support] Mass flux

Jean-Michel Campin jmc at ocean.mit.edu
Thu Aug 26 22:31:58 EDT 2010


Hi Alexander,

The "standard" way to add/remove water to the system is just
to do it at the surface. Then you just need to specify (or update)
EmPmR (Evap - Precip - RunOff), and there are various ways to do it.
The ALLOW_ADDFLUID and selectAddFluid have been added recently
for the case where the source/sink of water is not entirely at the 
surface level but inside the water column.
Are you really in the 2nd case (not at the surface) ?
We could provide more info/help about the 1rst case, but would like 
to be sure it's what you want.

Cheers,
Jean-Michel

On Wed, Aug 25, 2010 at 01:42:31PM -0230, aslavin at mun.ca wrote:
> Dear colleagues,
> 
> I have a problem with implementing mass flux into my model. Question in general:
> How to implement mass flux to runoff fresh water flux? I added runoff fresh
> water flux by EmPmRFile='runoff.bin', in my data and I also added it by EXF
> package (another way). It works fine, but it only changed salinity of the fluid
> and did not implementing real mass flux. I looked through external_forcing.F and
> found out this part of code:
> #ifdef ALLOW_ADDFLUID
>       IF ( selectAddFluid.NE.0 .AND. salt_addMass.NE.UNSET_RL ) THEN
>        IF ( ( selectAddFluid.GE.1 .AND. nonlinFreeSurf.GT.0 )
>      &      .OR. convertFW2Salt.EQ.-1. _d 0 ) THEN
>          DO j=1,sNy
>           DO i=1,sNx
>             gS(i,j,kLev,bi,bj) = gS(i,j,kLev,bi,bj)
>      &        + addMass(i,j,kLev,bi,bj)*mass2rUnit
>      &          *( salt_addMass - salt(i,j,kLev,bi,bj) )
>      &          *recip_rA(i,j,bi,bj)
>      &          *recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)
> C    &          *recip_deepFac2C(kLev)*recip_rhoFacC(kLev)
>           ENDDO
>          ENDDO
>        ELSE
>          DO j=1,sNy
>           DO i=1,sNx
>             gS(i,j,kLev,bi,bj) = gS(i,j,kLev,bi,bj)
>      &        + addMass(i,j,kLev,bi,bj)*mass2rUnit
>      &          *( salt_addMass - sRef(kLev) )
>      &          *recip_rA(i,j,bi,bj)
>      &          *recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)
> C    &          *recip_deepFac2C(kLev)*recip_rhoFacC(kLev)
>           ENDDO
>          ENDDO
>        ENDIF
>       ENDIF
> #endif /* ALLOW_ADDFLUID */
> 
> But I didn't understand how it is work. I added #define ALLOW_ADDFLUID into my
> CPP_OPTIONS.h on pre-compile step and selectAddFluid=1, into my data file. I
> also tried convertFW2Salt=-1,..
> Maybe someone had experience with mass flux or have any idea how its works?
> Thank you in advance for any kind of help.
> 
> Alexander.
> Memorial University of Newfoundland, Canada. 
> 
> 
> 
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support



More information about the MITgcm-support mailing list