File indexing completed on 2018-03-02 18:44:28 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
fc7306ba7d Jean*0001 #include "THSICE_OPTIONS.h"
df91b0899e Jean*0002 #ifdef ALLOW_BULK_FORCE
0003 #include "BULK_FORCE_OPTIONS.h"
0004 #endif
fc7306ba7d Jean*0005
87ea84cac6 Jean*0006
0007
0008
fc7306ba7d Jean*0009 SUBROUTINE THSICE_GET_BULKF(
6dc8890c80 Patr*0010 I bi, bj,
9dcf02c6ac Jean*0011 I iMin,iMax, jMin,jMax,
c1c3d0f9d7 Patr*0012 I icFlag, hSnow, Tsf,
9dcf02c6ac Jean*0013 O flxExcSw, dFlxdT, evap, dEvdT,
0014 I myTime, myIter, myThid )
87ea84cac6 Jean*0015
fc7306ba7d Jean*0016
df91b0899e Jean*0017
fc7306ba7d Jean*0018
0019
0020
87ea84cac6 Jean*0021
0022
0023
fc7306ba7d Jean*0024 IMPLICIT NONE
0025
0026
0027 #include "SIZE.h"
9dcf02c6ac Jean*0028 #ifdef ALLOW_BULK_FORCE
fc7306ba7d Jean*0029 #include "EEPARAMS.h"
df91b0899e Jean*0030 #include "BULKF_PARAMS.h"
fc7306ba7d Jean*0031 #include "BULKF.h"
0032 #endif
0033
87ea84cac6 Jean*0034
fc7306ba7d Jean*0035
9dcf02c6ac Jean*0036
0037
0038
c1c3d0f9d7 Patr*0039
0040
170766e9fd Jean*0041
87ea84cac6 Jean*0042
9dcf02c6ac Jean*0043
0044
87ea84cac6 Jean*0045
0046
fc7306ba7d Jean*0047
9dcf02c6ac Jean*0048 INTEGER bi, bj
0049 INTEGER iMin, iMax
0050 INTEGER jMin, jMax
c1c3d0f9d7 Patr*0051 _RL icFlag (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
6dc8890c80 Patr*0052 _RL hSnow (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
9dcf02c6ac Jean*0053 _RL Tsf (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0054 _RL flxExcSw(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0055 _RL dFlxdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0056 _RL evap (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0057 _RL dEvdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0058 _RL myTime
0059 INTEGER myIter
170766e9fd Jean*0060 INTEGER myThid
87ea84cac6 Jean*0061
fc7306ba7d Jean*0062
0063 #ifdef ALLOW_THSICE
0064 #ifdef ALLOW_BULK_FORCE
0065
0066
0067
170766e9fd Jean*0068
0069 INTEGER iceornot
9dcf02c6ac Jean*0070 INTEGER i, j
fc7306ba7d Jean*0071 _RL flwup
0072 _RL flwNet_dwn
0073 _RL fsh
0074 _RL flh
0075 _RL ust, vst, ssq
df91b0899e Jean*0076 #ifdef ALLOW_FORMULA_AIM
0077 _RL Tsurf(1), SHF(1), EVPloc(1), SLRU(1)
0078 _RL dEvp(1), sFlx(0:2)
0079 #endif
0080
9dcf02c6ac Jean*0081 DO j=jMin,jMax
0082 DO i=iMin,iMax
c1c3d0f9d7 Patr*0083 IF ( icFlag(i,j).GT.0. _d 0 ) THEN
9dcf02c6ac Jean*0084
0085
0086 IF ( hSnow(i,j).GT.3. _d -1 ) THEN
170766e9fd Jean*0087 iceornot=2
9dcf02c6ac Jean*0088 ELSE
170766e9fd Jean*0089 iceornot=1
9dcf02c6ac Jean*0090 ENDIF
170766e9fd Jean*0091
df91b0899e Jean*0092 #ifdef ALLOW_FORMULA_AIM
9dcf02c6ac Jean*0093 IF ( useFluxFormula_AIM ) THEN
0094
0095 Tsurf(1) = Tsf(i,j)
0096 CALL BULKF_FORMULA_AIM(
0097 I Tsurf, flwdwn(i,j,bi,bj),
0098 I ThAir(i,j,bi,bj), Tair(i,j,bi,bj),
0099 I Qair(i,j,bi,bj), wspeed(i,j,bi,bj),
0100 O SHF, EVPloc, SLRU,
0101 O dEvp, sFlx,
0102 I iceornot, myThid )
0103
0104 flxExcSw(i,j) = sFlx(1)
0105 dFlxdT(i,j) = sFlx(2)
df91b0899e Jean*0106
9dcf02c6ac Jean*0107 evap(i,j) = EVPloc(1) * 1. _d -3
0108 dEvdT(i,j) = dEvp(1) * 1. _d -3
df91b0899e Jean*0109
9dcf02c6ac Jean*0110 ELSE
df91b0899e Jean*0111 #else /* ALLOW_FORMULA_AIM */
9dcf02c6ac Jean*0112 IF ( .TRUE. ) THEN
df91b0899e Jean*0113 #endif /* ALLOW_FORMULA_AIM */
0114
9dcf02c6ac Jean*0115 ust = 0.
0116 vst = 0.
0117 ssq = 0.
0118
0119 IF ( blk_nIter.EQ.0 ) THEN
0120 CALL BULKF_FORMULA_LANL(
0121 I uwind(i,j,bi,bj), vwind(i,j,bi,bj), wspeed(i,j,bi,bj),
0122 I Tair(i,j,bi,bj), Qair(i,j,bi,bj),
0123 I cloud(i,j,bi,bj), Tsf(i,j),
0124 O flwup, flh, fsh, dFlxdT(i,j), ust, vst,
0125 O evap(i,j), ssq, dEvdT(i,j),
0126 I iceornot, myThid )
0127 ELSE
0128 CALL BULKF_FORMULA_LAY(
0129 I uwind(i,j,bi,bj), vwind(i,j,bi,bj), wspeed(i,j,bi,bj),
0130 I Tair(i,j,bi,bj), Qair(i,j,bi,bj), Tsf(i,j),
0131 O flwup, flh, fsh, dFlxdT(i,j), ust, vst,
0132 O evap(i,j), ssq, dEvdT(i,j),
0133 I iceornot, i,j,bi,bj,myThid )
0134 ENDIF
0135
0136 flwNet_dwn = flwdwn(i,j,bi,bj) - flwup
0137 flxExcSw(i,j) = flwNet_dwn + fsh + flh
0138
0139 ENDIF
fc7306ba7d Jean*0140
0141
9dcf02c6ac Jean*0142 ENDIF
0143 ENDDO
0144 ENDDO
fc7306ba7d Jean*0145
0146 #endif /* ALLOW_BULK_FORCE */
0147 #endif /* ALLOW_THSICE */
0148
0149 RETURN
0150 END