File indexing completed on 2024-12-17 18:37:26 UTC
view on githubraw file Latest commit 87dd4f7d on 2024-01-17 18:17:24 UTC
87dd4f7d5f Oliv*0001 #include "OASIM_OPTIONS.h"
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE OASIM_NAVAER(
0009 I relhum,am,Vi,ws,
0010 O beta,eta,wa,asymp,
0011 I myThid)
0012
0013
0014
0015
0016
0017
0018 IMPLICIT NONE
0019
0020
0021 _RL relhum, am, Vi, ws
0022 INTEGER myThid
0023
0024
0025 _RL beta, eta, wa, asymp
0026
0027
0028 #ifdef ALLOW_OASIM
0029
0030
0031 INTEGER n,i
0032 _RL rnum, rden, frh, arg, rval, sumx, sumy, sumxy, sumx2
0033 _RL rlrn, rldndr, gama, rlogc, alpha, cext
0034 _RL a(3),ro(3),dndr(3),r(3),rlam
0035 DATA ro /0.03 _d 0,0.24 _d 0,2.0 _d 0/
0036 DATA r /0.1 _d 0,1.0 _d 0,10.0 _d 0/
0037 DATA rlam /0.55 _d 0/
0038
0039
0040
0041 relhum = MIN(99.9 _d 0,relhum)
0042 rnum = 2.0 _d 0 - relhum/100.0 _d 0
0043 rden = 6.0 _d 0*(1.0 _d 0-relhum/100.0 _d 0)
0044 frh = (rnum/rden)**0.333 _d 0
0045
0046
0047 a(1) = 2000.0 _d 0*am*am
0048 a(2) = 5.866 _d 0*(ws-2.2 _d 0)
0049
0050 a(2) = MAX(0.5 _d 0,a(2))
0051 a(3) = 0.01527 _d 0*(ws-2.2 _d 0)*0.05 _d 0
0052
0053 a(3) = MAX(1.4 _d -5,a(3))
0054
0055
0056
0057 DO n = 1,3
0058 dndr(n) = 0.0
0059 DO i = 1,3
0060 rden = frh*ro(i)
0061 arg = LOG(r(n)/rden)*LOG(r(n)/rden)
0062 rval = a(i)*EXP(-arg)/frh
0063 dndr(n) = dndr(n) + rval
0064 ENDDO
0065 ENDDO
0066
0067
0068 sumx = 0.0 _d 0
0069 sumy = 0.0 _d 0
0070 sumxy = 0.0 _d 0
0071 sumx2 = 0.0 _d 0
0072 DO n = 1,3
0073 rlrn = LOG10(r(n))
0074 rldndr = LOG10(dndr(n))
0075 sumx = sumx + rlrn
0076 sumy = sumy + rldndr
0077 sumxy = sumxy + rlrn*rldndr
0078 sumx2 = sumx2 + rlrn*rlrn
0079 ENDDO
0080 gama = sumxy/sumx2
0081 rlogc = sumy/3.0 _d 0 - gama*sumx/3.0 _d 0
0082 alpha = -(gama+3.0 _d 0)
0083 eta = -alpha
0084
0085
0086 cext = 3.91 _d 0/Vi
0087 beta = cext*rlam**alpha
0088
0089
0090 IF (alpha .GT. 1.2 _d 0)THEN
0091 asymp = 0.65 _d 0
0092 ELSE IF (alpha .LT. 0.0 _d 0)THEN
0093 asymp = 0.82 _d 0
0094 ELSE
0095 asymp = -0.14167 _d 0*alpha + 0.82 _d 0
0096 ENDIF
0097
0098
0099 wa = (-0.0032 _d 0*am + 0.972 _d 0)*EXP(3.06 _d -4*relhum)
0100
0101 #endif /* ALLOW_OASIM */
0102
0103 RETURN
0104 END