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