File indexing completed on 2021-04-08 05:12:15 UTC
view on githubraw file Latest commit ba0b0470 on 2021-04-08 01:06:32 UTC
5dddee4ea2 Jean*0001 #include "CPP_OPTIONS.h"
0002
0003
0004
d0305341db Mart*0005
58a003f85e Jean*0006
0007
d0305341db Mart*0008
5dddee4ea2 Jean*0009
da3bdb7dd1 Jean*0010
0011
0012
0013
0014
58a003f85e Jean*0015 SUBROUTINE SW_PTMP (S,T,P,PR, rv)
5dddee4ea2 Jean*0016
0017
da3bdb7dd1 Jean*0018
0019
0020
0021
d0305341db Mart*0022
da3bdb7dd1 Jean*0023
0024
0025
0026
0027
0028
5dddee4ea2 Jean*0029
0030
0031 IMPLICIT NONE
d0305341db Mart*0032
5dddee4ea2 Jean*0033
0034
d0305341db Mart*0035
ba0b047096 Mart*0036
d0305341db Mart*0037
0038
0039
0040
5dddee4ea2 Jean*0041 _RL S,T,P,PR
0042 _RL rv
0043
da3bdb7dd1 Jean*0044
d0305341db Mart*0045
5dddee4ea2 Jean*0046 _RL del_P ,del_th, th, q
0047 _RL onehalf, two, three
da3bdb7dd1 Jean*0048 PARAMETER ( onehalf = 0.5 _d 0, two = 2. _d 0, three = 3. _d 0 )
5dddee4ea2 Jean*0049 _RL adtg_val
da3bdb7dd1 Jean*0050
0051
0052
5dddee4ea2 Jean*0053 del_P = PR - P
0054 call sw_adtg(S,T,P, adtg_val)
0055 del_th = del_P*adtg_val
0056 th = T + onehalf*del_th
0057 q = del_th
da3bdb7dd1 Jean*0058
5dddee4ea2 Jean*0059 call sw_adtg(S,th,P+onehalf*del_P, adtg_val)
0060 del_th = del_P*adtg_val
0061
0062 th = th + (1 - 1/sqrt(two))*(del_th - q)
0063 q = (two-sqrt(two))*del_th + (-two+three/sqrt(two))*q
0064
da3bdb7dd1 Jean*0065
5dddee4ea2 Jean*0066 call sw_adtg(S,th,P+onehalf*del_P, adtg_val)
0067 del_th = del_P*adtg_val
0068 th = th + (1 + 1/sqrt(two))*(del_th - q)
0069 q = (two + sqrt(two))*del_th + (-two-three/sqrt(two))*q
0070
da3bdb7dd1 Jean*0071
5dddee4ea2 Jean*0072 call sw_adtg(S,th,P+del_P, adtg_val)
0073 del_th = del_P*adtg_val
0074 rv = th + (del_th - two*q)/(two*three)
da3bdb7dd1 Jean*0075 RETURN
0076 END
5dddee4ea2 Jean*0077
da3bdb7dd1 Jean*0078
5dddee4ea2 Jean*0079
0080
0081
0082
58a003f85e Jean*0083 SUBROUTINE SW_TEMP( S, T, P, PR, rv)
5dddee4ea2 Jean*0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
07712e28f8 Jean*0097
0098
5dddee4ea2 Jean*0099
d0305341db Mart*0100
5dddee4ea2 Jean*0101
0102
0103 IMPLICIT NONE
0104
0105
0106
0107
da3bdb7dd1 Jean*0108
0109
0110
0111
d0305341db Mart*0112
da3bdb7dd1 Jean*0113 _RL S, T, P, PR
5dddee4ea2 Jean*0114 _RL rv
0115
da3bdb7dd1 Jean*0116
d0305341db Mart*0117
0118
5dddee4ea2 Jean*0119
d0305341db Mart*0120 CALL SW_PTMP (S,T,PR,P,rv)
5dddee4ea2 Jean*0121
0122 RETURN
0123 END
0124
da3bdb7dd1 Jean*0125
5dddee4ea2 Jean*0126
da3bdb7dd1 Jean*0127
0128
0129
5dddee4ea2 Jean*0130 SUBROUTINE SW_ADTG (S,T,P, rv)
0131
da3bdb7dd1 Jean*0132
0133
0134
0135
0136
d0305341db Mart*0137
da3bdb7dd1 Jean*0138
0139
0140
0141
0142
0143 IMPLICIT NONE
d0305341db Mart*0144
da3bdb7dd1 Jean*0145
0146
d0305341db Mart*0147
5dddee4ea2 Jean*0148 _RL S,T,P
58a003f85e Jean*0149 _RL rv
da3bdb7dd1 Jean*0150
0151
d0305341db Mart*0152
da3bdb7dd1 Jean*0153 _RL a0,a1,a2,a3,b0,b1,c0,c1,c2,c3,d0,d1,e0,e1,e2
5dddee4ea2 Jean*0154 _RL sref
da3bdb7dd1 Jean*0155
5dddee4ea2 Jean*0156
0157 sref = 35. _d 0
0158 a0 = 3.5803 _d -5
0159 a1 = +8.5258 _d -6
0160 a2 = -6.836 _d -8
0161 a3 = 6.6228 _d -10
0162
0163 b0 = +1.8932 _d -6
0164 b1 = -4.2393 _d -8
0165
0166 c0 = +1.8741 _d -8
0167 c1 = -6.7795 _d -10
0168 c2 = +8.733 _d -12
0169 c3 = -5.4481 _d -14
0170
0171 d0 = -1.1351 _d -10
0172 d1 = 2.7759 _d -12
0173
0174 e0 = -4.6206 _d -13
0175 e1 = +1.8676 _d -14
0176 e2 = -2.1687 _d -16
0177
0178 rv = a0 + (a1 + (a2 + a3*T)*T)*T
0179 & + (b0 + b1*T)*(S-sref)
0180 & + ( (c0 + (c1 + (c2 + c3*T)*T)*T) + (d0 + d1*T)*(S-sref) )*P
0181 & + ( e0 + (e1 + e2*T)*T )*P*P
da3bdb7dd1 Jean*0182
0183 RETURN
0184 END