Changeset 388 for palm/trunk/SOURCE/eqn_state_seawater.f90
- Timestamp:
- Sep 23, 2009 9:40:33 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/eqn_state_seawater.f90
r336 r388 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! First constant in array den also defined as type double 6 ! Potential density is additionally calculated in eqn_state_seawater, 7 ! first constant in array den also defined as type double 7 8 ! 8 9 ! Former revisions: … … 69 70 INTEGER :: i, j, k 70 71 71 REAL :: p 1, p2, p3, pt1, pt2, pt3, pt4, sa1, sa15, sa272 REAL :: pden, pnom, p1, p2, p3, pt1, pt2, pt3, pt4, sa1, sa15, sa2 72 73 73 74 DO i = nxl, nxr … … 76 77 ! 77 78 !-- Pressure is needed in dbar 78 ! p1 = hyp(0) * 1E-479 ! p1 = 0.080 79 p1 = hyp(k) * 1E-4 81 80 p2 = p1 * p1 … … 93 92 sa2 = sa1 * sa1 94 93 95 rho(k,j,i) = & 96 ( nom(1) + nom(2)*pt1 + nom(3)*pt2 + & 97 nom(4)*pt3 + nom(5)*sa1 + nom(6)*sa1*pt1 + & 98 nom(7)*sa2 + nom(8)*p1 + nom(9)*p1*pt2 + & 99 nom(10)*p1*sa1 + nom(11)*p2 + nom(12)*p2*pt2 & 100 ) / & 101 ( den(1) + den(2)*pt1 + den(3)*pt2 + & 102 den(4)*pt3 + den(5)*pt4 + den(6)*sa1 + & 103 den(7)*sa1*pt1 + den(8)*sa1*pt3 + den(9)*sa15 + & 104 den(10)*sa15*pt2 + den(11)*p1 + den(12)*p2*pt3 + & 105 den(13)*p3*pt1 & 106 ) 94 pnom = nom(1) + nom(2)*pt1 + nom(3)*pt2 + & 95 nom(4)*pt3 + nom(5)*sa1 + nom(6)*sa1*pt1 + & 96 nom(7)*sa2 97 98 pden = den(1) + den(2)*pt1 + den(3)*pt2 + & 99 den(4)*pt3 + den(5)*pt4 + den(6)*sa1 + & 100 den(7)*sa1*pt1 + den(8)*sa1*pt3 + den(9)*sa15 + & 101 den(10)*sa15*pt2 102 103 ! 104 !-- Potential density (without pressure terms) 105 prho(k,j,i) = pnom / pden 106 107 pnom = pnom + nom(8)*p1 + nom(9)*p1*pt2 + & 108 nom(10)*p1*sa1 + nom(11)*p2 + nom(12)*p2*pt2 109 110 pden = pden + den(11)*p1 + den(12)*p2*pt3 + & 111 den(13)*p3*pt1 112 113 ! 114 !-- In-situ density 115 rho(k,j,i) = pnom / pden 107 116 108 117 ENDDO 109 118 ! 110 119 !-- Neumann conditions are assumed at bottom and top boundary 111 rho(nzt+1,j,i) = rho(nzt,j,i) 112 rho(nzb_s_inner(j,i),j,i) = rho(nzb_s_inner(j,i)+1,j,i) 120 prho(nzt+1,j,i) = prho(nzt,j,i) 121 prho(nzb_s_inner(j,i),j,i) = prho(nzb_s_inner(j,i)+1,j,i) 122 rho(nzt+1,j,i) = rho(nzt,j,i) 123 rho(nzb_s_inner(j,i),j,i) = rho(nzb_s_inner(j,i)+1,j,i) 124 113 125 ENDDO 114 126 ENDDO … … 129 141 INTEGER :: i, j, k 130 142 131 REAL :: p 1, p2, p3, pt1, pt2, pt3, pt4, sa1, sa15, sa2143 REAL :: pden, pnom, p1, p2, p3, pt1, pt2, pt3, pt4, sa1, sa15, sa2 132 144 133 145 DO k = nzb_s_inner(j,i)+1, nzt 134 146 ! 135 147 !-- Pressure is needed in dbar 136 ! p1 = hyp(0) * 1E-4137 ! p1 = 0.0138 148 p1 = hyp(k) * 1E-4 139 149 p2 = p1 * p1 … … 151 161 sa2 = sa1 * sa1 152 162 153 rho(k,j,i) = ( nom(1) + nom(2)*pt1 + nom(3)*pt2 + & 154 nom(4)*pt3 + nom(5)*sa1 + nom(6)*sa1*pt1 + & 155 nom(7)*sa2 + nom(8)*p1 + nom(9)*p1*pt2 + & 156 nom(10)*p1*sa1 + nom(11)*p2 + nom(12)*p2*pt2 & 157 ) / & 158 ( den(1) + den(2)*pt1 + den(3)*pt2 + & 159 den(4)*pt3 + den(5)*pt4 + den(6)*sa1 + & 160 den(7)*sa1*pt1 + den(8)*sa1*pt3 + den(9)*sa15 + & 161 den(10)*sa15*pt2 + den(11)*p1 + den(12)*p2*pt3 + & 162 den(13)*p3*pt1 & 163 ) 163 pnom = nom(1) + nom(2)*pt1 + nom(3)*pt2 + & 164 nom(4)*pt3 + nom(5)*sa1 + nom(6)*sa1*pt1 + & 165 nom(7)*sa2 166 167 pden = den(1) + den(2)*pt1 + den(3)*pt2 + & 168 den(4)*pt3 + den(5)*pt4 + den(6)*sa1 + & 169 den(7)*sa1*pt1 + den(8)*sa1*pt3 + den(9)*sa15 + & 170 den(10)*sa15*pt2 171 172 ! 173 !-- Potential density (without pressure terms) 174 prho(k,j,i) = pnom / pden 175 176 pnom = pnom + nom(8)*p1 + nom(9)*p1*pt2 + & 177 nom(10)*p1*sa1 + nom(11)*p2 + nom(12)*p2*pt2 178 pden = pden + den(11)*p1 + den(12)*p2*pt3 + & 179 den(13)*p3*pt1 180 181 ! 182 !-- In-situ density 183 rho(k,j,i) = pnom / pden 184 185 164 186 ENDDO 187 165 188 ! 166 189 !-- Neumann conditions are assumed at bottom and top boundary 167 rho(nzt+1,j,i) = rho(nzt,j,i) 168 rho(nzb_s_inner(j,i),j,i) = rho(nzb_s_inner(j,i)+1,j,i) 190 prho(nzt+1,j,i) = prho(nzt,j,i) 191 prho(nzb_s_inner(j,i),j,i) = prho(nzb_s_inner(j,i)+1,j,i) 192 rho(nzt+1,j,i) = rho(nzt,j,i) 193 rho(nzb_s_inner(j,i),j,i) = rho(nzb_s_inner(j,i)+1,j,i) 169 194 170 195 END SUBROUTINE eqn_state_seawater_ij
Note: See TracChangeset
for help on using the changeset viewer.