Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:43:11 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
b5aa60a554 Dimi*0001 #include "SALT_PLUME_OPTIONS.h"
                0002 
                0003 CBOP 0
762bde3a3e Dimi*0004 C     !ROUTINE: SALT_PLUME_READPARMS
                0005 C     !INTERFACE:
b5aa60a554 Dimi*0006       SUBROUTINE SALT_PLUME_READPARMS( myThid )
                0007 
                0008 C     !DESCRIPTION:
                0009 C     Initialize SALT_PLUME variables and constants.
                0010 
                0011 C     !USES:
                0012       IMPLICIT NONE
                0013 #include "SIZE.h"
                0014 #include "EEPARAMS.h"
                0015 #include "PARAMS.h"
                0016 #include "GRID.h"
                0017 #include "SALT_PLUME.h"
                0018 
                0019 C     !INPUT PARAMETERS:
                0020       INTEGER myThid
                0021 CEOP
                0022 
762bde3a3e Dimi*0023 #ifdef ALLOW_SALT_PLUME
ae4c29e0db Jean*0024 C     !LOCAL VARIABLES:
                0025 C     msgBuf      - Informational/error message buffer
                0026 C     iUnit       - Work variable for IO unit number
                0027       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0028       INTEGER iUnit
762bde3a3e Dimi*0029 
824966555a Dimi*0030       NAMELIST /SALT_PLUME_PARM01/
1aca59cbdd Dimi*0031      &     SaltPlumeSouthernOcean,
824966555a Dimi*0032      &     CriterionType, PlumeMethod, Npower,
815b600e86 Gael*0033      &     SaltPlumeCriterion, SPovershoot, SPsalFRAC
4b0b6a4929 An T*0034 #ifdef SALT_PLUME_IN_LEADS
                0035      &     , SPinflectionPoint
                0036 #endif
1f89baba18 Patr*0037 #ifdef SALT_PLUME_SPLIT_BASIN
                0038      &     , SaltPlumeSplitBasin
                0039 #endif
                0040 #ifdef SALT_PLUME_VOLUME
                0041      &     , SPbrineSconst, SPbrineSaltmax
                0042 #endif
b5aa60a554 Dimi*0043 
ae4c29e0db Jean*0044 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0045 
                0046       IF ( .NOT.useSALT_PLUME ) THEN
                0047 C-    pkg SALT_PLUME is not used
                0048         _BEGIN_MASTER(myThid)
                0049 C-    Track pkg activation status:
                0050 C     print a (weak) warning if data.salt_plume is found
                0051          CALL PACKAGES_UNUSED_MSG( 'useSALT_PLUME', ' ', ' ' )
                0052         _END_MASTER(myThid)
                0053         RETURN
                0054       ENDIF
b5aa60a554 Dimi*0055 
                0056       _BEGIN_MASTER(myThid)
                0057 
                0058 C--   Default values for SALT_PLUME
1aca59cbdd Dimi*0059       SaltPlumeSouthernOcean = .TRUE.
824966555a Dimi*0060       CriterionType       = 1
                0061       PlumeMethod         = 1
                0062       SaltPlumeCriterion  = UNSET_RL
                0063       SPovershoot         = 1.0 _d 0
1f89baba18 Patr*0064 #ifdef SALT_PLUME_SPLIT_BASIN
                0065       SaltPlumeSplitBasin = .FALSE.
                0066       Npower(1)           = 0
                0067       Npower(2)           = 0
                0068       SPsalFRAC(1)        = 1.0 _d 0
                0069       SPsalFRAC(2)        = 1.0 _d 0
                0070 #else
                0071       Npower              = 0
815b600e86 Gael*0072       SPsalFRAC           = 1.0 _d 0
1f89baba18 Patr*0073 #endif
4b0b6a4929 An T*0074 #ifdef SALT_PLUME_IN_LEADS
                0075       SPinflectionPoint   = 0.8 _d 0
                0076 #endif
1f89baba18 Patr*0077 #ifdef SALT_PLUME_VOLUME
                0078       SPbrineSconst       = 45. _d 0
                0079       SPbrineSaltmax      = 100. _d 0
                0080 #endif
824966555a Dimi*0081 
b5aa60a554 Dimi*0082       WRITE(msgBuf,'(A)')'SALT_PLUME_READPARMS: opening data.salt_plume'
                0083       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0084      &                    SQUEEZE_RIGHT , 1)
                0085       CALL OPEN_COPY_DATA_FILE(
                0086      I                     'data.salt_plume', 'SALT_PLUME_READPARMS',
                0087      O                     iUnit,
                0088      I                     myThid )
                0089 
                0090 C     Read parameters from open data file
                0091       READ(UNIT=iUnit,NML=SALT_PLUME_PARM01)
ae4c29e0db Jean*0092       WRITE(msgBuf,'(A)')
b5aa60a554 Dimi*0093      &    'SALT_PLUME_READPARMS: finished reading data.salt_plume'
                0094       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0095      &    SQUEEZE_RIGHT , 1)
                0096 C     Close the open data file
7a77863887 Mart*0097 #ifdef SINGLE_DISK_IO
b5aa60a554 Dimi*0098       CLOSE(iUnit)
7a77863887 Mart*0099 #else
                0100       CLOSE(iUnit,STATUS='DELETE')
                0101 #endif /* SINGLE_DISK_IO */
                0102 
                0103       IF ( SaltPlumeCriterion .EQ. UNSET_RL ) THEN
                0104        IF ( CriterionType .EQ. 1 ) THEN
                0105         SaltPlumeCriterion  = 0.4 _d 0
                0106        ELSEIF ( CriterionType .EQ. 2 ) THEN
                0107         SaltPlumeCriterion  = 0.005 _d 0
                0108        ELSE
                0109         WRITE(msgBuf,'(A)') 'S/R SALT_PLUME_READPARMS'
                0110         CALL PRINT_ERROR( msgBuf, myThid )
                0111         WRITE(msgBuf,'(A)') 'Invalid CriterionType'
                0112         CALL PRINT_ERROR( msgBuf, myThid )
                0113         STOP 'ABNORMAL END: S/R SALT_PLUME_READPARMS'
824966555a Dimi*0114        ENDIF
7a77863887 Mart*0115       ENDIF
824966555a Dimi*0116 
b5aa60a554 Dimi*0117       _END_MASTER(myThid)
                0118 
                0119 C--   Everyone else must wait for the parameters to be loaded
                0120       _BARRIER
                0121 
762bde3a3e Dimi*0122 #endif /* ALLOW_SALT_PLUME */
                0123 
b5aa60a554 Dimi*0124       RETURN
                0125       END