Back to home page

MITgcm

 
 

    


File indexing completed on 2019-06-15 05:10:38 UTC

view on githubraw file Latest commit e0f9a7ba on 2019-06-14 16:32:02 UTC
c0d1c06c15 Matt*0001 #include "BLING_OPTIONS.h"
                0002 
                0003 CBOP
                0004       subroutine BLING_READ_PICKUP(
e0f9a7ba0b Matt*0005      O           pH_isLoaded,
                0006      I           myIter, myThid )
c0d1c06c15 Matt*0007 
                0008 C     ==========================================================
                0009 C     | subroutine bling_read_pickup
df5a9764ba Jean*0010 C     | o Read BLING arrays from a pickup file
c0d1c06c15 Matt*0011 C     ==========================================================
                0012 
df5a9764ba Jean*0013       IMPLICIT NONE
                0014 
c0d1c06c15 Matt*0015 C     === Global variables ===
                0016 #include "SIZE.h"
                0017 #include "EEPARAMS.h"
                0018 #include "PARAMS.h"
                0019 #include "BLING_VARS.h"
                0020 
                0021 C     == Routine arguments ==
                0022 C     myThid  :: my Thread Id number
                0023       LOGICAL pH_isLoaded
                0024       INTEGER myIter
                0025       INTEGER myThid
                0026 
                0027 #ifdef ALLOW_BLING
                0028 
                0029 C     !FUNCTIONS
                0030 
                0031 C     !LOCAL VARIABLES:
df5a9764ba Jean*0032       CHARACTER*(10) suff
c0d1c06c15 Matt*0033       CHARACTER*(MAX_LEN_FNAM) fn, filNam
                0034       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0035       LOGICAL useCurrentDir, fileExist
                0036       INTEGER fp, ioUnit
                0037 CEOP
                0038 
                0039       pH_isLoaded =.FALSE.
                0040       ioUnit = errorMessageUnit
                0041 
                0042 C--   pickup file name :
                0043       IF (pickupSuff.EQ.' ') THEN
df5a9764ba Jean*0044         IF ( rwSuffixType.EQ.0 ) THEN
                0045           WRITE(fn,'(A,I10.10)') 'pickup_bling.', myIter
                0046         ELSE
                0047           CALL RW_GET_SUFFIX( suff, startTime, myIter, myThid )
                0048           WRITE(fn,'(A,A)') 'pickup_bling.', myIter
                0049         ENDIF
c0d1c06c15 Matt*0050       ELSE
                0051         WRITE(fn,'(A,A10)') 'pickup_bling.', pickupSuff
                0052       ENDIF
                0053       fp = precFloat64
                0054 
                0055 C--   First check if pickup file exist
                0056 #ifdef ALLOW_MDSIO
                0057       useCurrentDir = .FALSE.
                0058       CALL MDS_CHECK4FILE(
                0059      I                     fn, '.data', 'BLING_READ_PICKUP',
                0060      O                     filNam, fileExist,
                0061      I                     useCurrentDir, myThid )
                0062 #else
                0063       STOP 'ABNORMAL END: S/R BLING_READ_PICKUP: Needs MDSIO pkg'
                0064 #endif
                0065 
                0066       IF ( fileExist ) THEN
                0067 C--   Read pickup file
                0068         CALL READ_REC_3D_RL( fn, fp, Nr, pH, 1, myIter, myThid )
                0069         pH_isLoaded = .TRUE.
                0070 
                0071         CALL READ_REC_3D_RL( fn, fp, Nr, irr_mem, 2, myIter, myThid )
                0072         CALL READ_REC_3D_RL( fn, fp, Nr, chl, 3, myIter, myThid )
4ac06494d5 Matt*0073         CALL READ_REC_3D_RL( fn, fp, Nr, phyto_sm, 4, myIter, myThid )
                0074         CALL READ_REC_3D_RL( fn, fp, Nr, phyto_lg, 5, myIter, myThid )
e0f9a7ba0b Matt*0075 #ifndef USE_BLING_V1
4ac06494d5 Matt*0076         CALL READ_REC_3D_RL( fn, fp, Nr, phyto_diaz, 6, myIter, myThid )
e0f9a7ba0b Matt*0077 #endif
c0d1c06c15 Matt*0078 
                0079         _EXCH_XYZ_RL( pH, myThid )
                0080         _EXCH_XYZ_RL( irr_mem, myThid )
                0081         _EXCH_XYZ_RL( chl, myThid )
4ac06494d5 Matt*0082         _EXCH_XYZ_RL( phyto_sm, myThid )
                0083         _EXCH_XYZ_RL( phyto_lg, myThid )
e0f9a7ba0b Matt*0084 #ifndef USE_BLING_V1
4ac06494d5 Matt*0085         _EXCH_XYZ_RL( phyto_diaz, myThid )
e0f9a7ba0b Matt*0086 #endif
c0d1c06c15 Matt*0087 
                0088       ELSE
                0089         pH_isLoaded = .FALSE.
                0090         IF ( pickupStrictlyMatch ) THEN
                0091           WRITE(msgBuf,'(4A)') 'BLING_READ_PICKUP: ',
                0092      &      'try with " pickupStrictlyMatch=.FALSE.,"',
                0093      &      ' in file: "data", NameList: "PARM03"'
                0094           CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0095           STOP 'ABNORMAL END: S/R BLING_READ_PICKUP'
                0096         ELSE
                0097           WRITE(msgBuf,'(2A)') 'WARNING >> BLING_READ_PICKUP: ',
                0098      &      'will restart from approximated pH'
                0099           CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0100         ENDIF
                0101       ENDIF
                0102 
                0103 #endif /*  ALLOW_BLING  */
                0104 
                0105       RETURN
                0106       END