Back to home page

darwin3

 
 

    


File indexing completed on 2024-12-17 18:38:10 UTC

view on githubraw file Latest commit 80fd5561 on 2024-11-25 21:30:13 UTC
762bde3a3e Dimi*0001 #ifdef ALLOW_SALT_PLUME
b5aa60a554 Dimi*0002 
762bde3a3e Dimi*0003 C--   SALT_PLUME parameters
                0004 C     Find surface where the potential density (ref.lev=surface) is
824966555a Dimi*0005 C     larger than surface density plus SaltPlumeCriterion.
                0006 
1aca59cbdd Dimi*0007 C     SaltPlumeSouthernOcean: TRUE  = apply salt plume globally
                0008 C                             FALSE = apply salt plume in Arctic Ocean only
                0009       LOGICAL SaltPlumeSouthernOcean
1f89baba18 Patr*0010 #ifdef SALT_PLUME_SPLIT_BASIN
                0011       LOGICAL SaltPlumeSplitBasin
                0012 #endif
1aca59cbdd Dimi*0013       COMMON /SALT_PLUME_PARAMS_L/ SaltPlumeSouthernOcean
1f89baba18 Patr*0014 #ifdef SALT_PLUME_SPLIT_BASIN
                0015      &      , SaltPlumeSplitBasin
                0016 #endif
1aca59cbdd Dimi*0017 
824966555a Dimi*0018 C     CriterionType: 1=delta_rho, 2=drhodz, default is 1
5968a91b01 An T*0019 C     PlumeMethod: method of distributing salt plume vertically
                0020 C       1=power, 2=exp, 3=overshoot, 5=dump_at_top, 6=reverse of 1
824966555a Dimi*0021 C       default is 1
                0022 C     Npower: choices of distributing salt uniformly (0), linear (1),
5968a91b01 An T*0023 C       or higher power (Npower>1); default is 0 when PlumeMethod = 1
1f89baba18 Patr*0024       INTEGER CriterionType, PlumeMethod
                0025 #ifdef SALT_PLUME_SPLIT_BASIN
                0026      & , Npower(2)
                0027 #else
                0028      & , Npower
                0029 #endif
824966555a Dimi*0030       COMMON /SALT_PLUME_PARAMS_I/ CriterionType, PlumeMethod, Npower
                0031 
                0032 C     SaltPlumeCriterion
                0033 C       for CriterionType=1, default is 0.4 kg/m^3 of Duffy et al 1999
                0034 C       for CriterionType=2, default is 0.005 kg/m^3/m
                0035 C     SPovershoot: overshooting depth of penetrating salt plume,
                0036 C       so that 1.0 = no-overshoot, 1.2 = 20% overshoot.
                0037 C       default is 1.0
815b600e86 Gael*0038 C     SPsalFRAC: fraction of the salt by-product of seaice growth (not melt) that
                0039 C       will be re-distributed vertically according to the salt_plume_frac.F
                0040 C       Its default is 1. (for 100% effect), and its range is [0. 1.]
ba0b047096 Mart*0041 C     SPinflectionPoint: the inflection point of a nonlinear function
4b0b6a4929 An T*0042 C       f(AREA) controlling saltPlumeFlux. f(AREA) is a logistic curve
                0043 C       (sigmoid) with range [0. 1.] and f(SPinflectionPoint) == 0.5.
                0044 C       Usage: pkg/salt_plume activates when AREA>=SPinflectionPoint.
ba0b047096 Mart*0045 C       To assure only narrow leads generate plumes:
4b0b6a4929 An T*0046 C       set SPinflectionPoint >= 0.8.
1f89baba18 Patr*0047 C     SPalpha :: fraction of grid volume designated to be brine, [0. 1.]
                0048 C       If grid cell 18km x 18km x 10m, take SPalpha=0.001 gives
                0049 C       volume of 0.001*drF(1)*[dx*dy] of brine. Thus SPbrineSalt
                0050 C       can be calc as adding SaltPlumeFlux into this fractional vol.
                0051 C       Default: 0.008 -> SPbrineSalt ~37 if SSS is ~32.
ba0b047096 Mart*0052 C     SPbrineSconst :: salinity of brine pocket (g/kg)
b5aa60a554 Dimi*0053 
1f89baba18 Patr*0054       _RL SaltPlumeCriterion, SPovershoot
                0055 #ifdef SALT_PLUME_SPLIT_BASIN
                0056      &   , SPsalFRAC(2)
                0057 #else /* SALT_PLUME_SPLIT_BASIN */
                0058      &   , SPsalFRAC
                0059 #endif /* SALT_PLUME_SPLIT_BASIN */
                0060 #ifdef SALT_PLUME_VOLUME
                0061      &   , SPbrineSconst, SPbrineSaltmax
ba0b047096 Mart*0062 #endif /* SALT_PLUME_VOLUME */
4b0b6a4929 An T*0063 #ifdef SALT_PLUME_IN_LEADS
1f89baba18 Patr*0064      &   , SPinflectionPoint
                0065 #endif /* SALT_PLUME_IN_LEADS */
815b600e86 Gael*0066       COMMON /SALT_PLUME_PARAMS_R/
                0067      &   SPsalFRAC, SaltPlumeCriterion, SPovershoot
1f89baba18 Patr*0068 #ifdef SALT_PLUME_VOLUME
                0069      &   , SPbrineSconst, SPbrineSaltmax
                0070 #endif /* SALT_PLUME_VOLUME */
4b0b6a4929 An T*0071 #ifdef SALT_PLUME_IN_LEADS
                0072      &   , SPinflectionPoint
                0073 #endif
b5aa60a554 Dimi*0074 C--   SALT_PLUME 2-dim. fields
e4775240e5 Dimi*0075 C     SaltPlumeDepth :: depth of penetration of salt plumes
                0076 C                       rejected during sea ice growth
ba0b047096 Mart*0077 C     saltPlumeFlux :: Net downward salt flux in g/m^2/s
                0078 C              Note: only used when salty sea-ice forms.
e4775240e5 Dimi*0079 C              > 0 for increasing in SSS.
                0080 C              Southwest C-grid tracer point
1f89baba18 Patr*0081 C     dSPvolSurf2kLev :: downward volume frac from klev=1 associated w/ saltPlumeFlux
                0082 C     dSPvolBelow2kLev:: upward volume frac from grid below (RETIRED)
                0083 C     dSPvolkLev2Above:: upward volume frac to grid above
                0084 C     SPbrineVolFlux  :: brine Vol associated w/ SPbrineSconst & saltPlumeFlux
ba0b047096 Mart*0085 C     SPforcingS      :: 3D forcingS associated w/ saltPlumeFlux in g/m^2/s
                0086 C     SPforcingT      :: 3D forcingT associated w/ saltPlumeFlux in W/m^2
1f89baba18 Patr*0087 C     SPkBottom       :: bottom kLev associated with SaltPlumeDepth
                0088 
762bde3a3e Dimi*0089       _RL SaltPlumeDepth (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
e4775240e5 Dimi*0090       _RL  saltPlumeFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
1f89baba18 Patr*0091 #ifdef SALT_PLUME_VOLUME
                0092       _RL SPbrineVolFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0093       _RL SPforcS1       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0094       _RL SPforcT1       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0095       _RL dSPvolSurf2kLev (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0096      &   ,dSPvolkLev2Above(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1,nSx,nSy)
                0097      &   ,SPforcingS      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0098      &   ,SPforcingT      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0099      &   ,SPplumek        (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1,nSx,nSy)
                0100 #endif
762bde3a3e Dimi*0101       COMMON /DYNVARS_SALT_PLUME/ SaltPlumeDepth
1f89baba18 Patr*0102 #ifdef SALT_PLUME_VOLUME
                0103      &    ,SPbrineVolFlux,SPforcS1,SPforcT1
                0104       COMMON /FFIELDS_SaltPlumeVol/
                0105      &     dSPvolSurf2kLev,dSPvolkLev2Above
                0106      &     ,SPforcingS,SPforcingT
                0107      &     ,SPplumek
                0108 #endif
762bde3a3e Dimi*0109       COMMON /FFIELDS_saltPlumeFlux/ saltPlumeFlux
80fd556159 Ou W*0110 c#ifndef SALT_PLUME_OPTIONS_H
                0111 C--   Since many common block here depend on Options, not safe to have this
                0112 C     header included without SALT_PLUME_OPTIONS.h. Safety-check below:
                0113 C     this line will fail to compile src code if Option file is not included
                0114 c     STOP 'need "SALT_PLUME_OPTIONS.h" to include "SALT_PLUME.h"'
                0115 c#endif
762bde3a3e Dimi*0116 #endif /* ALLOW_SALT_PLUME */