File indexing completed on 2024-12-17 18:37:22 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_CLRTRANS(
0009 I cosunz,rm,rmp,ta,wa,asym,
0010 O Td,Ts,
0011 I myThid)
0012
0013
0014
0015
0016
0017
0018
0019
0020 IMPLICIT NONE
0021 #include "SIZE.h"
0022 #include "EEPARAMS.h"
0023 #include "OASIM_SIZE.h"
0024 #include "OASIM_INTERNAL.h"
0025
0026
0027 _RL cosunz,rm,rmp
0028 _RL ta(nlt),asym(nlt),wa(nlt)
0029 INTEGER myThid
0030
0031
0032
0033
0034 _RL Td(nlt),Ts(nlt)
0035
0036
0037 #ifdef ALLOW_OASIM
0038
0039
0040 CHARACTER*(MAX_LEN_MBUF) msgBuf
0041 INTEGER l
0042 _RL afs,bfs
0043 _RL rtra,alg,Fa,tarm,atra,taa,tas,dray,daer
0044
0045
0046 DO l = 1,nlt
0047
0048 rtra = EXP(-thray(l)*rmp)
0049
0050 alg = log(1.0 _d 0-asym(l))
0051 afs = alg*(1.459 _d 0+alg*(.1595 _d 0+alg*.4129 _d 0))
0052 bfs = alg*(.0783 _d 0+alg*(-.3824 _d 0-alg*.5874 _d 0))
0053 IF (ta(l) .LT. 0.0 _d 0 .OR. wa(l) .LT. 0.0 _d 0)THEN
0054 WRITE(msgBuf,'(A)') 'OASIM_CLRTRANS: error in ta or omega'
0055 CALL PRINT_ERROR( msgBuf , myThid)
0056 WRITE(msgBuf,'(2A,I3,1P3E15.6)') 'OASIM_CLRTRANS: ',
0057 & 'l,ta,wa,asym = ',l,ta(l),wa(l),asym(l)
0058 CALL PRINT_ERROR( msgBuf , myThid)
0059 ENDIF
0060 Fa = 1.0 _d 0 - 0.5 _d 0*EXP((afs+bfs*cosunz)*cosunz)
0061 IF (Fa .LT. 0.0 _d 0)THEN
0062 WRITE(msgBuf,'(A)') 'OASIM_CLRTRANS: error in Fa'
0063 CALL PRINT_ERROR( msgBuf , myThid)
0064 WRITE(msgBuf,'(2A,I3,1P3E15.6)') 'OASIM_CLRTRANS: ',
0065 & 'l,ta,wa,asym = ',l,ta(l),wa(l),asym(l)
0066 CALL PRINT_ERROR( msgBuf , myThid)
0067 ENDIF
0068 tarm = ta(l)*rm
0069 atra = EXP(-tarm)
0070 taa = EXP(-(1.0 _d 0-wa(l))*tarm)
0071 tas = EXP(-wa(l)*tarm)
0072
0073 Td(l) = rtra*atra
0074
0075
0076 dray = taa*0.5 _d 0*(1.0 _d 0-rtra**.95 _d 0)
0077 daer = rtra**1.5 _d 0*taa*Fa*(1.0 _d 0-tas)
0078
0079
0080 Ts(l) = dray + daer
0081
0082 ENDDO
0083
0084 #endif /* ALLOW_OASIM */
0085
0086 RETURN
0087 END