/[MITgcm]/MITgcm/pkg/salt_plume/salt_plume_forcing_surf.F
ViewVC logotype

Contents of /MITgcm/pkg/salt_plume/salt_plume_forcing_surf.F

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


Revision 1.5 - (show annotations) (download)
Wed May 21 10:46:03 2014 UTC (9 years, 11 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint65, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, HEAD
Changes since 1.4: +17 -4 lines
An Nguyen's extensions to salt_plume package
(carry corresponding heat flux along with salt redistribution)

1 C $Header: /u/gcmpack/MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/salt_plume_forcing_surf.F,v 1.3 2014/05/02 06:09:11 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 IF ( usingPCoords ) THEN
50 ks = Nr
51 ELSE
52 ks = 1
53 ENDIF
54
55 DO j = jMin, jMax
56 DO i = iMin, iMax
57 #ifdef SALT_PLUME_VOLUME
58 SPforcS1(i,j,bi,bj)=SPbrineVolFlux(i,j,bi,bj)
59 & *SPbrineSconst*rhoConst
60 SPforcT1(i,j,bi,bj)=SPbrineVolFlux(i,j,bi,bj)
61 & *theta(i,j,1,bi,bj)*rhoConst
62 & *HeatCapacity_Cp
63
64 Cunits: surfaceForcingT [Kelvin.m/s], surfaceForcingS [psu.m/s]
65 C SPforcS1 has same unit as saltPlumeFlux [g/m2/s]=[g/kg kg/m2/s]
66 C SPforcT1: [W/m2]
67 surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj)
68 & - SPforcS1(i,j,bi,bj) * mass2rUnit
69 surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj)
70 & - SPforcT1(i,j,bi,bj) * mass2rUnit / HeatCapacity_Cp
71 #else /* SALT_PLUME_VOLUME */
72 surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj)
73 & - saltPlumeFlux(i,j,bi,bj) * mass2rUnit
74 #endif /* SALT_PLUME_VOLUME */
75 ENDDO
76 ENDDO
77 #endif /* ALLOW_SALT_PLUME */
78
79 RETURN
80 END

  ViewVC Help
Powered by ViewVC 1.1.22