/[MITgcm]/MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/salt_plume_forcing_surf.F
ViewVC logotype

Contents of /MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/salt_plume_forcing_surf.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Fri May 2 06:09:11 2014 UTC (9 years, 11 months ago) by atn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +12 -6 lines
move surf forcing from salt_plume_forcing_surf.F into salt_plume_apply.F

1 C $Header: /u/gcmpack/MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/salt_plume_forcing_surf.F,v 1.2 2014/05/01 08:09:30 atn Exp $
2 C $Name: $
3
4 #include "SALT_PLUME_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: SALT_PLUME_FORCING_SURF
8 C !INTERFACE:
9 SUBROUTINE SALT_PLUME_FORCING_SURF(
10 I bi, bj, iMin, iMax, jMin, jMax,
11 I myTime,myIter,myThid )
12
13 C !DESCRIPTION: \bv
14 C *==========================================================*
15 C | S/R SALT_PLUME_FORCING_SURF
16 C | o saltPlume is the amount of salt rejected by ice while freezing;
17 C | it is here subtracted from surfaceForcingS and will be redistributed
18 C | to multiple vertical levels later on as per Duffy et al. (GRL 1999)
19 C *==========================================================*
20 C \ev
21
22 C !USES:
23 IMPLICIT NONE
24 C == Global variables ==
25 #include "SIZE.h"
26 #include "EEPARAMS.h"
27 #include "PARAMS.h"
28 #include "GRID.h"
29 #include "FFIELDS.h"
30 #include "DYNVARS.h"
31 #include "SALT_PLUME.h"
32
33 C !INPUT PARAMETERS:
34 C bi,bj :: tile indices
35 C myTime :: model time
36 C myIter :: time-step number
37 C myThid :: thread number
38 INTEGER bi, bj, iMin, iMax, jMin, jMax
39 _RL myTime
40 INTEGER myIter
41 INTEGER myThid
42 CEOP
43
44 #ifdef ALLOW_SALT_PLUME
45 C !LOCAL VARIABLES:
46 C i,j :: loop indices
47 C ks :: surface level index
48 INTEGER i, j, ks
49 C#ifdef SALT_PLUME_VOLUME
50 C _RL SEAICE_Tfrz
51 C parameter (SEAICE_Tfrz = -1.96 _d 0)
52 C#endif
53
54 IF ( usingPCoords ) THEN
55 ks = Nr
56 ELSE
57 ks = 1
58 ENDIF
59
60 DO j = jMin, jMax
61 DO i = iMin, iMax
62 #ifndef SALT_PLUME_VOLUME
63 surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj)
64 & - saltPlumeFlux(i,j,bi,bj) * mass2rUnit
65 C#else
66 C surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj)
67 C & - SPbrineVolFlux(i,j,bi,bj)*SPbrineSconst
68 CCC & + SPforcingS(i,j,1,bi,bj) * mass2rUnit
69 C surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj)
70 C & - SPbrineVolFlux(i,j,bi,bj)*SEAICE_Tfrz
71 CCC & + SPforcingT(i,j,1,bi,bj) * mass2rUnit * recip_Cp
72 #endif /* SALT_PLUME_VOLUME */
73 ENDDO
74 ENDDO
75 #endif /* ALLOW_SALT_PLUME */
76
77 RETURN
78 END

  ViewVC Help
Powered by ViewVC 1.1.22