Back to home page

MITgcm

 
 

    


File indexing completed on 2020-07-25 05:10:56 UTC

view on githubraw file Latest commit a2844551 on 2020-07-25 02:56:46 UTC
c0d1c06c15 Matt*0001 #include "BLING_OPTIONS.h"
ad31d92a39 Jean*0002 #ifdef ALLOW_EXF
                0003 # include "EXF_OPTIONS.h"
                0004 #endif
c0d1c06c15 Matt*0005 
                0006 CBOP
                0007       subroutine BLING_INI_FORCING( myThid )
                0008 
                0009 C     ==========================================================
                0010 C     | subroutine bling_ini_forcing
                0011 C     | o Initialize forcing fields
                0012 C     ==========================================================
                0013 
e0f9a7ba0b Matt*0014       IMPLICIT NONE
ad31d92a39 Jean*0015 
c0d1c06c15 Matt*0016 C     === Global variables ===
                0017 #include "SIZE.h"
                0018 #include "EEPARAMS.h"
                0019 #include "PARAMS.h"
                0020 #include "GRID.h"
e0f9a7ba0b Matt*0021 #ifdef ALLOW_EXF
9f0da36f91 Jean*0022 # include "EXF_INTERP_SIZE.h"
079948e6a6 Matt*0023 #endif
c0d1c06c15 Matt*0024 #include "BLING_VARS.h"
                0025 #include "BLING_LOAD.h"
                0026 
                0027 C !INPUT PARAMETERS: ===================================================
                0028 C  myThid               :: thread number
                0029       INTEGER myThid
                0030 CEOP
                0031 
                0032 #ifdef ALLOW_BLING
                0033 
                0034 c !LOCAL VARIABLES: ===================================================
                0035        INTEGER bi,bj,i,j
e0f9a7ba0b Matt*0036 #ifdef USE_BLING_V1
c0d1c06c15 Matt*0037        CHARACTER*(MAX_LEN_MBUF) msgBuf
                0038 #endif
                0039 
                0040 C First call requires that we initialize everything to zero for safety
                0041       DO bj = myByLo(myThid), myByHi(myThid)
                0042        DO bi = myBxLo(myThid), myBxHi(myThid)
                0043          BLING_ldRec(bi,bj) = 0
                0044        ENDDO
                0045       ENDDO
                0046       CALL LEF_ZERO( dicwind0,myThid )
                0047       CALL LEF_ZERO( dicwind1,myThid )
                0048       CALL LEF_ZERO( atmosp0,myThid )
                0049       CALL LEF_ZERO( atmosp1,myThid )
                0050       CALL LEF_ZERO( silica0,myThid )
                0051       CALL LEF_ZERO( silica1,myThid )
                0052       CALL LEF_ZERO( ice0,myThid )
                0053       CALL LEF_ZERO( ice1,myThid )
                0054       CALL LEF_ZERO( feinput0,myThid )
                0055       CALL LEF_ZERO( feinput1,myThid )
                0056 
e0f9a7ba0b Matt*0057 #ifdef USE_BLING_V1
                0058 #ifdef USE_SIBLING
c0d1c06c15 Matt*0059         WRITE(msgBuf,'(2A)')
e0f9a7ba0b Matt*0060      &       ' BLING_INI_FORCING: You can not have USE_SIBLING ',
                0061      &       ' with USE_BLING_V1'
c0d1c06c15 Matt*0062         CALL PRINT_ERROR( msgBuf, myThid )
                0063         STOP 'ABNORMAL END: S/R BLING_INI_FORCING'
                0064 #endif
e0f9a7ba0b Matt*0065 #ifdef USE_BLING_DVM
                0066         WRITE(msgBuf,'(2A)')
                0067      &       ' BLING_INI_FORCING: You can not have USE_BLING_DVM ',
                0068      &       ' with USE_BLING_V1'
                0069         CALL PRINT_ERROR( msgBuf, myThid )
                0070         STOP 'ABNORMAL END: S/R BLING_INI_FORCING'
c0d1c06c15 Matt*0071 #endif
e0f9a7ba0b Matt*0072 #ifdef ADVECT_PHYTO
                0073         WRITE(msgBuf,'(2A)')
                0074      &       ' BLING_INI_FORCING: You can not use ADVECT_PHYTO ',
                0075      &       ' with USE_BLING_V1'
                0076         CALL PRINT_ERROR( msgBuf, myThid )
                0077         STOP 'ABNORMAL END: S/R BLING_INI_FORCING'
                0078 #endif
                0079 #endif /* USE_BLING_V1 */
c0d1c06c15 Matt*0080 
                0081 c set reasonable values to those that need at least something
                0082        DO bj = myByLo(myThid), myByHi(myThid)
                0083         DO bi = myBxLo(myThid), myBxHi(myThid)
ad31d92a39 Jean*0084          DO j=1-OLy,sNy+OLy
                0085           DO i=1-OLx,sNx+OLx
a284455135 Matt*0086              apco2(i,j,bi,bj) = bling_pCO2*maskC(i,j,1,bi,bj)
e0f9a7ba0b Matt*0087              wind(i,j,bi,bj)     = 5. _d 0*maskC(i,j,1,bi,bj)
                0088              atmosP(i,j,bi,bj)   = 1. _d 0*maskC(i,j,1,bi,bj)
                0089              fIce(i,j,bi,bj)     = 0. _d 0
                0090              fluxCO2(i,j,bi,bj)  = 0. _d 0
                0091              InputFe(i,j,bi,bj)  = 1. _d -11*maskC(i,j,1,bi,bj)
                0092              silica(i,j,bi,bj)   = 7.6838 _d -3*maskC(i,j,1,bi,bj)
c0d1c06c15 Matt*0093           ENDDO
                0094          ENDDO
                0095         ENDDO
                0096        ENDDO
                0097 
e0f9a7ba0b Matt*0098 #ifdef ALLOW_EXF
                0099       IF ( useEXF ) THEN
a284455135 Matt*0100        IF ( apco2file .NE. ' ' ) THEN
ad31d92a39 Jean*0101       CALL EXF_INIT_FLD(
                0102      I     'apco2', apco2file, apco2mask,
                0103      I     apco2period, exf_inscal_apco2, apco2const,
a284455135 Matt*0104      O     apco2, apco20, apco21,
079948e6a6 Matt*0105 # ifdef USE_EXF_INTERPOLATION
ad31d92a39 Jean*0106      I     apco2_lon0, apco2_lon_inc,
                0107      I     apco2_lat0, apco2_lat_inc,
                0108      I     apco2_nlon, apco2_nlat, xC, yC, apco2_interpMethod,
079948e6a6 Matt*0109 # endif
ad31d92a39 Jean*0110      I     myThid )
a284455135 Matt*0111        ENDIF
e0f9a7ba0b Matt*0112       ENDIF
9f0da36f91 Jean*0113 #endif /* ALLOW_EXF */
079948e6a6 Matt*0114 
c0d1c06c15 Matt*0115 #endif /* ALLOW_BLING */
                0116       RETURN
                0117       END