Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:37:27 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
b3097ed02d Jean*0001 #include "AIM_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: SUFLUX_OCEAN
                0005 C     !INTERFACE:
                0006       SUBROUTINE SUFLUX_OCEAN(
                0007      I                   PSA, FMASK,
                0008      I                   Tsurf, SSR, SLRD,
e749d70ece Jean*0009      I                   T1, T0, Q0, DENVV,
b3097ed02d Jean*0010      O                   SHF, EVAP, SLRU,
                0011      I                   bi,bj,myThid)
                0012 
                0013 C     !DESCRIPTION: \bv
                0014 C     *==========================================================*
                0015 C     | S/R SUFLUX_OCEAN
                0016 C     | o compute surface flux over ocean
                0017 C     *==========================================================*
                0018 C     | o contains part of original S/R SUFLUX (Speedy code)
                0019 C     *==========================================================*
                0020 C     \ev
                0021 
                0022 C     !USES:
                0023       IMPLICIT NONE
                0024 
                0025 C     Resolution parameters
                0026 
                0027 C-- size for MITgcm & Physics package :
                0028 #include "AIM_SIZE.h"
                0029 #include "EEPARAMS.h"
                0030 
                0031 C     Physical constants + functions of sigma and latitude
                0032 #include "com_physcon.h"
                0033 
                0034 C     Surface flux constants
                0035 #include "com_sflcon.h"
                0036 
                0037 C     == Routine Arguments ==
                0038 C--   Input:
                0039 C    FMASK  :: fractional land-sea mask        (2-dim)
                0040 C    Tsurf  :: surface temperature        (2-dim)
                0041 C    SSR    :: sfc sw radiation (net flux)     (2-dim)
                0042 C    SLRD   :: sfc lw radiation (downward flux)(2-dim)
e749d70ece Jean*0043 C    T1     :: near-surface air temperature (from Pot.temp)
b3097ed02d Jean*0044 C    T0     :: near-surface air temperature    (2-dim)
                0045 C    Q0     :: near-surface sp. humidity [g/kg](2-dim)
e749d70ece Jean*0046 C    DENVV  :: surface flux (sens,lat.) coeff. (=Rho*|V|) [kg/m2/s]
b3097ed02d Jean*0047 C--   Output:
                0048 C    SHF    :: sensible heat flux              (2-dim)
                0049 C    EVAP   :: evaporation [g/(m^2 s)]         (2-dim)
                0050 C    SLRU   :: sfc lw radiation (upward flux)  (2-dim)
                0051 C--   Input:
                0052 C    bi,bj  :: tile index
                0053 C    myThid :: Thread number for this instance of the routine
                0054 C--
                0055       _RL  PSA(NGP)
                0056       _RL  FMASK(NGP), Tsurf(NGP)
e749d70ece Jean*0057       _RL  SSR(NGP), SLRD(NGP) 
                0058       _RL  T1(NGP), T0(NGP), Q0(NGP), DENVV(NGP)
b3097ed02d Jean*0059 
                0060       _RL  SHF(NGP), EVAP(NGP), SLRU(NGP)
                0061 
                0062       INTEGER bi,bj,myThid
                0063 CEOP
                0064 
                0065 #ifdef ALLOW_AIM
                0066 
                0067 C-- Local variables:
e749d70ece Jean*0068 C    CDENVV :: surf. heat flux (sens.,lat.) coeff including stability effect
                0069       _RL CDENVV(NGP), RDTH, FSSEA
b3097ed02d Jean*0070       _RL QSAT0(NGP)
                0071       _RL QDUMMY(1), RDUMMY(1), TS4
                0072       INTEGER J
                0073 
                0074 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0075 
                0076 C--   2. Computation of fluxes over land and sea
                0077 
                0078 C     2.1 Wind stress
                0079 
                0080 C     2.2 Sensible heat flux (from clim. TS over land)
                0081 
e749d70ece Jean*0082 C     Stability correction
                0083 
                0084       RDTH = FSTAB/DTHETA
                0085 
                0086       DO J=1,NGP
                0087         FSSEA =1.+MIN(DTHETA,MAX(-DTHETA, Tsurf(J)-T1(J)))*RDTH
                0088         CDENVV(J)=CHS*DENVV(J)*FSSEA
                0089       ENDDO
                0090 
b3097ed02d Jean*0091       DO J=1,NGP
                0092         SHF(J) = CDENVV(J)*CP*(Tsurf(J)-T0(J))
                0093       ENDDO
                0094 
                0095 C     2.3 Evaporation
                0096 
                0097       CALL SHTORH (0, NGP, Tsurf, PSA, 1. _d 0, QDUMMY, RDUMMY,
                0098      &                QSAT0, myThid)
                0099 
                0100       DO J=1,NGP
                0101         EVAP(J) = CDENVV(J)*(QSAT0(J)-Q0(J))
                0102       ENDDO
                0103 
                0104 C     2.4 Emission of lw radiation from the surface
                0105 
                0106       DO J=1,NGP
                0107         TS4     = Tsurf(J)**4
                0108         SLRU(J) = SBC*TS4
                0109       ENDDO
                0110 
                0111 C--   3. Adjustment of skin temperature and fluxes over land
                0112 C--      based on energy balance (to be implemented)
                0113 C        <= done separately for each surface type (land,sea,se-ice)
                0114 
                0115 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0116 #endif /* ALLOW_AIM */
                0117 
                0118       RETURN
                0119       END