95 MODULE PROCEDURE fofonoff_millard_1d
96 MODULE PROCEDURE fofonoff_millard_2d
100 MODULE PROCEDURE dens2_1d
101 MODULE PROCEDURE dens2_2d
105 MODULE PROCEDURE jacket_mcdougall_1d
106 MODULE PROCEDURE jacket_mcdougall_2d
109 PRIVATE jacket_mcdougall_1d
110 PRIVATE jacket_mcdougall_2d
115 PRIVATE fofonoff_millard_1d
116 PRIVATE fofonoff_millard_2d
133 SUBROUTINE fofonoff_millard_2d(MYS,MYT,MYP,PREF, MYRHO)
137 REAL(SP),
INTENT(IN),
DIMENSION(:,:) :: MYS,MYT,MYP
138 REAL(SP),
INTENT(IN) :: PREF
139 REAL(SP),
INTENT(INOUT),
DIMENSION(:,:):: MYRHO
140 INTEGER :: I,K,ub1,lb1,ub2,lb2
141 REAL(SP) ::PT,SVA,SIGMA
152 if(lb1 /= lbound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
153 if(ub1 /= ubound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
155 if(lb2 /= lbound(myt,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
156 if(ub2 /= ubound(myt,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
159 if(lb1 /= lbound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
160 if(ub1 /= ubound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
162 if(lb2 /= lbound(myp,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
163 if(ub2 /= ubound(myp,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
166 if(lb1 /= lbound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
167 if(ub1 /= ubound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
169 if(lb2 /= lbound(myrho,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
170 if(ub2 /= ubound(myrho,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
177 pt = theta(mys(i,k),myt(i,k),myp(i,k),pref)
178 sva = svan(mys(i,k),pt,myp(i,k),sigma)
179 myrho(i,k) = sigma*1.e-3_sp
185 END SUBROUTINE fofonoff_millard_2d
187 SUBROUTINE fofonoff_millard_1d(MYS,MYT,MYP,PREF, MYRHO)
191 REAL(SP),
INTENT(IN),
DIMENSION(:) :: MYS,MYT,MYP
192 REAL(SP),
INTENT(IN) :: PREF
193 REAL(SP),
INTENT(INOUT),
DIMENSION(:):: MYRHO
194 INTEGER :: I,K,ub1,lb1
195 REAL(SP) ::PT,SVA,SIGMA
203 if(lb1 /= lbound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
204 if(ub1 /= ubound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
207 if(lb1 /= lbound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
208 if(ub1 /= ubound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
211 if(lb1 /= lbound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
212 if(ub1 /= ubound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
216 pt = theta(mys(k),myt(k),myp(k),pref)
217 sva = svan(mys(k),pt,myp(k),sigma)
218 myrho(k) = sigma*1.e-3_sp
223 END SUBROUTINE fofonoff_millard_1d
233 REAL(SP),
PARAMETER ::PR = 0.0_sp
234 REAL(SP),
DIMENSION(0:MT,1:KB) :: RZU
241 rzu(:,k) = -
grav_n*1.025_sp*(
zz(:,k)*
d(:))*0.1_sp
244 CALL fofonoff_millard_2d(
s1,
t1,rzu,pr,
rho1)
265 SUBROUTINE dens2_2d(MYS,MYT,MYRHO)
269 REAL(SP),
INTENT(IN),
DIMENSION(:,:) :: MYS,MYT
270 REAL(SP),
INTENT(INOUT),
DIMENSION(:,:):: MYRHO
273 INTEGER :: I,K,ub1,lb1,ub2,lb2
284 if(lb1 /= lbound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
285 if(ub1 /= ubound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
287 if(lb2 /= lbound(myt,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
288 if(ub2 /= ubound(myt,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
291 if(lb1 /= lbound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
292 if(ub1 /= ubound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
294 if(lb2 /= lbound(myrho,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
295 if(ub2 /= ubound(myrho,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
301 myrho =mys*mys*mys*6.76786136e-6_sp &
302 & - mys*mys*4.8249614e-4_sp &
303 & + mys*8.14876577e-1_sp &
307 & ( myt*myt*myt*1.667e-8_sp &
308 & - myt*myt*8.164e-7_sp &
309 & + myt*1.803e-5_sp &
312 myrho = myrho+1.0_sp &
313 & - myt*myt*myt*1.0843e-6_sp &
314 & + myt*myt*9.8185e-5_sp &
318 & ( mys*mys*mys*6.76786136e-6_sp &
319 & - mys*mys*4.8249614e-4_sp &
320 & + mys*8.14876577e-1_sp &
325 & - (myt-3.98_sp) *(myt-3.98_sp) * (myt+283.0_sp) / (503.57_sp*(myt+67.26_sp))
330 myrho = myrho*1.e-3_sp
332 END SUBROUTINE dens2_2d
334 SUBROUTINE dens2_1d(MYS,MYT,MYRHO)
338 REAL(SP),
INTENT(IN),
DIMENSION(:) :: MYS,MYT
339 REAL(SP),
INTENT(INOUT),
DIMENSION(:):: MYRHO
341 INTEGER :: I,K,ub1,lb1,ub2,lb2
349 if(lb1 /= lbound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
350 if(ub1 /= ubound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
353 if(lb1 /= lbound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
354 if(ub1 /= ubound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
359 myrho =mys*mys*mys*6.76786136e-6_sp &
360 & - mys*mys*4.8249614e-4_sp &
361 & + mys*8.14876577e-1_sp &
365 & ( myt*myt*myt*1.667e-8_sp &
366 & - myt*myt*8.164e-7_sp &
367 & + myt*1.803e-5_sp &
370 myrho = myrho+1.0_sp &
371 & - myt*myt*myt*1.0843e-6_sp &
372 & + myt*myt*9.8185e-5_sp &
376 & ( mys*mys*mys*6.76786136e-6_sp &
377 & - mys*mys*4.8249614e-4_sp &
378 & + mys*8.14876577e-1_sp &
383 & - (myt-3.98_sp) *(myt-3.98_sp) * (myt+283.0_sp) / (503.57_sp*(myt+67.26_sp))
388 myrho = myrho*1.e-3_sp
390 END SUBROUTINE dens2_1d
437 SUBROUTINE jacket_mcdougall_2d(MYS,MYT,MYP,MYRHO)
441 REAL(SP),
INTENT(IN),
DIMENSION(:,:) :: MYS,MYT,MYP
442 REAL(SP),
INTENT(INOUT),
DIMENSION(:,:):: MYRHO
444 REAL(SP) :: TF,SF,sqrtSF,PBAR,TEMP(10),BULK,BULK0,BULK1,BULK2
445 INTEGER :: I,K,ub1,lb1,ub2,lb2
451 REAL(SP),
PARAMETER :: A00 = +1.965933e+04_sp
452 REAL(SP),
PARAMETER :: A01 = +1.444304e+02_sp
453 REAL(SP),
PARAMETER :: A02 = -1.706103e+00_sp
454 REAL(SP),
PARAMETER :: A03 = +9.648704e-03_sp
455 REAL(SP),
PARAMETER :: A04 = -4.190253e-05_sp
456 REAL(SP),
PARAMETER :: B00 = +5.284855e+01_sp
457 REAL(SP),
PARAMETER :: B01 = -3.101089e-01_sp
458 REAL(SP),
PARAMETER :: B02 = +6.283263e-03_sp
459 REAL(SP),
PARAMETER :: B03 = -5.084188e-05_sp
460 REAL(SP),
PARAMETER :: D00 = +3.886640e-01_sp
461 REAL(SP),
PARAMETER :: D01 = +9.085835e-03_sp
462 REAL(SP),
PARAMETER :: D02 = -4.619924e-04_sp
463 REAL(SP),
PARAMETER :: E00 = +3.186519e+00_sp
464 REAL(SP),
PARAMETER :: E01 = +2.212276e-02_sp
465 REAL(SP),
PARAMETER :: E02 = -2.984642e-04_sp
466 REAL(SP),
PARAMETER :: E03 = +1.956415e-06_sp
467 REAL(SP),
PARAMETER :: F00 = +6.704388e-03_sp
468 REAL(SP),
PARAMETER :: F01 = -1.847318e-04_sp
469 REAL(SP),
PARAMETER :: F02 = +2.059331e-07_sp
470 REAL(SP),
PARAMETER :: G00 = +1.480266e-04_sp
471 REAL(SP),
PARAMETER :: G01 = +2.102898e-04_sp
472 REAL(SP),
PARAMETER :: G02 = -1.202016e-05_sp
473 REAL(SP),
PARAMETER :: G03 = +1.394680e-07_sp
474 REAL(SP),
PARAMETER :: H00 = -2.040237e-06_sp
475 REAL(SP),
PARAMETER :: H01 = +6.128773e-08_sp
476 REAL(SP),
PARAMETER :: H02 = +6.207323e-10_sp
478 REAL(SP),
PARAMETER :: Q00 = +9.99842594e+02_sp
479 REAL(SP),
PARAMETER :: Q01 = +6.793952e-02_sp
480 REAL(SP),
PARAMETER :: Q02 = -9.095290e-03_sp
481 REAL(SP),
PARAMETER :: Q03 = +1.001685e-04_sp
482 REAL(SP),
PARAMETER :: Q04 = -1.120083e-06_sp
483 REAL(SP),
PARAMETER :: Q05 = +6.536332e-09_sp
484 REAL(SP),
PARAMETER :: U00 = +8.24493e-01_sp
485 REAL(SP),
PARAMETER :: U01 = -4.08990e-03_sp
486 REAL(SP),
PARAMETER :: U02 = +7.64380e-05_sp
487 REAL(SP),
PARAMETER :: U03 = -8.24670e-07_sp
488 REAL(SP),
PARAMETER :: U04 = +5.38750e-09_sp
489 REAL(SP),
PARAMETER :: V00 = -5.72466e-03_sp
490 REAL(SP),
PARAMETER :: V01 = +1.02270e-04_sp
491 REAL(SP),
PARAMETER :: V02 = -1.65460e-06_sp
492 REAL(SP),
PARAMETER :: W00 = +4.8314e-04_sp
503 if(lb1 /= lbound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
504 if(ub1 /= ubound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
506 if(lb2 /= lbound(myt,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
507 if(ub2 /= ubound(myt,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
510 if(lb1 /= lbound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
511 if(ub1 /= ubound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
513 if(lb2 /= lbound(myp,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
514 if(ub2 /= ubound(myp,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
517 if(lb1 /= lbound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
518 if(ub1 /= ubound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
520 if(lb2 /= lbound(myrho,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
521 if(ub2 /= ubound(myrho,2))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
537 temp(1)=q00+tf*(q01+tf*(q02+tf*(q03+tf*(q04+tf*q05))))
538 temp(2)=u00+tf*(u01+tf*(u02+tf*(u03+tf*u04)))
539 temp(3)=v00+tf*(v01+tf*v02)
540 myrho(i,k)=temp(1)+sf*(temp(2)+sqrtsf*temp(3)+sf*w00)
543 temp(4)=a00+tf*(a01+tf*(a02+tf*(a03+tf*a04)))
544 temp(5)=b00+tf*(b01+tf*(b02+tf*b03))
545 temp(6)=d00+tf*(d01+tf*d02)
546 temp(7)=e00+tf*(e01+tf*(e02+tf*e03))
547 temp(8)=f00+tf*(f01+tf*f02)
548 temp(9)=g01+tf*(g02+tf*g03)
549 temp(10)=h00+tf*(h01+tf*h02)
551 bulk0=temp(4)+sf*(temp(5)+sqrtsf*temp(6))
552 bulk1=temp(7)+sf*(temp(8)+sqrtsf*g00)
553 bulk2=temp(9)+sf*temp(10)
554 bulk = bulk0 + pbar * (bulk1 + pbar * bulk2)
557 myrho(i,k)=(myrho(i,k)*bulk)/(bulk-pbar)
558 myrho(i,k)= myrho(i,k)-1000.0_sp
565 myrho = myrho*1.e-3_sp
568 END SUBROUTINE jacket_mcdougall_2d
570 SUBROUTINE jacket_mcdougall_1d(MYS,MYT,MYP,MYRHO)
574 REAL(SP),
INTENT(IN),
DIMENSION(:) :: MYS,MYT,MYP
575 REAL(SP),
INTENT(INOUT),
DIMENSION(:):: MYRHO
577 REAL(SP) :: TF,SF,sqrtSF,PBAR,TEMP(10),BULK,BULK0,BULK1,BULK2
584 REAL(SP),
PARAMETER :: A00 = +1.965933e+04_sp
585 REAL(SP),
PARAMETER :: A01 = +1.444304e+02_sp
586 REAL(SP),
PARAMETER :: A02 = -1.706103e+00_sp
587 REAL(SP),
PARAMETER :: A03 = +9.648704e-03_sp
588 REAL(SP),
PARAMETER :: A04 = -4.190253e-05_sp
589 REAL(SP),
PARAMETER :: B00 = +5.284855e+01_sp
590 REAL(SP),
PARAMETER :: B01 = -3.101089e-01_sp
591 REAL(SP),
PARAMETER :: B02 = +6.283263e-03_sp
592 REAL(SP),
PARAMETER :: B03 = -5.084188e-05_sp
593 REAL(SP),
PARAMETER :: D00 = +3.886640e-01_sp
594 REAL(SP),
PARAMETER :: D01 = +9.085835e-03_sp
595 REAL(SP),
PARAMETER :: D02 = -4.619924e-04_sp
596 REAL(SP),
PARAMETER :: E00 = +3.186519e+00_sp
597 REAL(SP),
PARAMETER :: E01 = +2.212276e-02_sp
598 REAL(SP),
PARAMETER :: E02 = -2.984642e-04_sp
599 REAL(SP),
PARAMETER :: E03 = +1.956415e-06_sp
600 REAL(SP),
PARAMETER :: F00 = +6.704388e-03_sp
601 REAL(SP),
PARAMETER :: F01 = -1.847318e-04_sp
602 REAL(SP),
PARAMETER :: F02 = +2.059331e-07_sp
603 REAL(SP),
PARAMETER :: G00 = +1.480266e-04_sp
604 REAL(SP),
PARAMETER :: G01 = +2.102898e-04_sp
605 REAL(SP),
PARAMETER :: G02 = -1.202016e-05_sp
606 REAL(SP),
PARAMETER :: G03 = +1.394680e-07_sp
607 REAL(SP),
PARAMETER :: H00 = -2.040237e-06_sp
608 REAL(SP),
PARAMETER :: H01 = +6.128773e-08_sp
609 REAL(SP),
PARAMETER :: H02 = +6.207323e-10_sp
611 REAL(SP),
PARAMETER :: Q00 = +9.99842594e+02_sp
612 REAL(SP),
PARAMETER :: Q01 = +6.793952e-02_sp
613 REAL(SP),
PARAMETER :: Q02 = -9.095290e-03_sp
614 REAL(SP),
PARAMETER :: Q03 = +1.001685e-04_sp
615 REAL(SP),
PARAMETER :: Q04 = -1.120083e-06_sp
616 REAL(SP),
PARAMETER :: Q05 = +6.536332e-09_sp
617 REAL(SP),
PARAMETER :: U00 = +8.24493e-01_sp
618 REAL(SP),
PARAMETER :: U01 = -4.08990e-03_sp
619 REAL(SP),
PARAMETER :: U02 = +7.64380e-05_sp
620 REAL(SP),
PARAMETER :: U03 = -8.24670e-07_sp
621 REAL(SP),
PARAMETER :: U04 = +5.38750e-09_sp
622 REAL(SP),
PARAMETER :: V00 = -5.72466e-03_sp
623 REAL(SP),
PARAMETER :: V01 = +1.02270e-04_sp
624 REAL(SP),
PARAMETER :: V02 = -1.65460e-06_sp
625 REAL(SP),
PARAMETER :: W00 = +4.8314e-04_sp
633 if(lb1 /= lbound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
634 if(ub1 /= ubound(myt,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
637 if(lb1 /= lbound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
638 if(ub1 /= ubound(myp,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
641 if(lb1 /= lbound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
642 if(ub1 /= ubound(myrho,1))
CALL fatal_error(
"EQS_OF_STATE:: Dimension mismatch!")
655 temp(1)=q00+tf*(q01+tf*(q02+tf*(q03+tf*(q04+tf*q05))))
656 temp(2)=u00+tf*(u01+tf*(u02+tf*(u03+tf*u04)))
657 temp(3)=v00+tf*(v01+tf*v02)
658 myrho(k)=temp(1)+sf*(temp(2)+sqrtsf*temp(3)+sf*w00)
661 temp(4)=a00+tf*(a01+tf*(a02+tf*(a03+tf*a04)))
662 temp(5)=b00+tf*(b01+tf*(b02+tf*b03))
663 temp(6)=d00+tf*(d01+tf*d02)
664 temp(7)=e00+tf*(e01+tf*(e02+tf*e03))
665 temp(8)=f00+tf*(f01+tf*f02)
666 temp(9)=g01+tf*(g02+tf*g03)
667 temp(10)=h00+tf*(h01+tf*h02)
669 bulk0=temp(4)+sf*(temp(5)+sqrtsf*temp(6))
670 bulk1=temp(7)+sf*(temp(8)+sqrtsf*g00)
671 bulk2=temp(9)+sf*temp(10)
672 bulk = bulk0 + pbar * (bulk1 + pbar * bulk2)
675 myrho(k)=(myrho(k)*bulk)/(bulk-pbar)
676 myrho(k)= myrho(k)-1000.0_sp
682 myrho = myrho*1.e-3_sp
685 END SUBROUTINE jacket_mcdougall_1d
690 REAL(SP),
DIMENSION(0:MT,KB) :: MYP
696 myp(:,k) = -
grav_n(:)*1.025_sp*
zz(:,k)*
d(:) *0.01_sp
699 CALL jacket_mcdougall_2d(
s1,
t1,myp,
rho1)
712 FUNCTION svan(S4,T4,P04,SIGMA)
738 REAL(SP),
INTENT(IN) :: S4,T4,P04
739 REAL(SP),
INTENT(OUT) :: SIGMA
740 REAL(SP) P4,SIG,SR,RR1,RR2,RR3,V350P,DK
741 REAL(SP) A4,B4,C4,D4,E4,AA1,BB1,AW,BW,KK,K0,KW,K35,SVA
742 REAL(SP) GAM,PK,DVAN,DR35P
744 REAL(SP),
PARAMETER :: R3500 = 1028.1063_sp
745 REAL(SP),
PARAMETER :: RR4 = 4.8314e-4_sp
746 REAL(SP),
PARAMETER :: DR350 = 28.106331_sp
759 rr1=((((6.536332e-9_sp*t4-1.120083e-6_sp)*t4+1.001685e-4_sp)*t4 &
760 -9.095290e-3_sp)*t4+6.793952e-2_sp)*t4-28.263737_sp
767 rr2=(((5.3875e-9_sp*t4-8.2467e-7_sp)*t4+7.6438e-5_sp)*t4-4.0899e-3_sp)*t4 &
772 rr3=(-1.6546e-6_sp*t4+1.0227e-4_sp)*t4-5.72466e-3_sp
776 sig=(rr4*s4+rr3*sr+rr2)*s4+rr1
781 sva = -sig*v350p/(r3500+sig)
787 IF(p4 == 0.0_sp)
RETURN 797 e4 = (9.1697e-10*t4+2.0816e-8_sp)*t4-9.9348e-7_sp
798 bw = (5.2787e-8_sp*t4-6.12293e-6_sp)*t4+3.47718e-5_sp
802 c4 = (-1.6078e-6_sp*t4-1.0981e-5_sp)*t4+2.2838e-3_sp
803 aw = ((-5.77905e-7_sp*t4+1.16092e-4_sp)*t4+1.43713e-3_sp)*t4 &
805 a4 = (d4*sr + c4)*s4 + aw
807 bb1 = (-5.3009e-4_sp*t4+1.6483e-2_sp)*t4+7.944e-2_sp
808 aa1 = ((-6.1670e-5_sp*t4+1.09987e-2_sp)*t4-0.603459_sp)*t4+54.6746
809 kw = (((-5.155288e-5_sp*t4+1.360477e-2_sp)*t4-2.327105_sp)*t4 &
810 +148.4206_sp)*t4-1930.06_sp
811 k0 = (bb1*sr + aa1)*s4 + kw
820 dk = (b4*p4 + a4)*p4 + k0
821 k35 = (5.03217e-5_sp*p4+3.359406_sp)*p4+21582.27_sp
824 sva = sva*pk + (v350p+sva)*p4*dk/(k35*(k35+dk))
845 dvan=sva/(v350p*(v350p+sva))
846 sigma=dr350+dr35p-dvan
854 FUNCTION theta(S4,T04,P04,PR)
879 REAL(SP),
INTENT(IN) :: S4,T04,P04,PR
880 REAL(SP) :: P4,T4,H4,Q4,XK
888 xk = h4*atg(s4,t4,p4)
892 xk = h4*atg(s4,t4,p4)
893 t4 = t4 + 0.29289322_sp*(xk-q4)
894 q4 = 0.58578644_sp*xk + 0.121320344_sp*q4
895 xk = h4*atg(s4,t4,p4)
896 t4 = t4 + 1.707106781_sp*(xk-q4)
897 q4 = 3.414213562_sp*xk - 4.121320344_sp*q4
899 xk = h4*atg(s4,t4,p4)
900 theta = t4 + (xk-2.0_sp*q4)/6.0_sp
919 REAL(SP) FUNCTION ATG(S4,T4,P4)
925 REAL(SP),
INTENT(IN) :: S4,T4,P4
931 atg = (((-2.1687e-16_sp*t4+1.8676e-14_sp)*t4-4.6206e-13_sp)*p4 &
932 +((2.7759e-12_sp*t4-1.1351e-10_sp)*ds+((-5.4481e-14_sp*t4 &
933 +8.733e-12_sp)*t4-6.7795e-10_sp)*t4+1.8741e-8_sp))*p4 &
934 +(-4.2393e-8_sp*t4+1.8932e-6_sp)*ds &
935 +((6.6228e-10_sp*t4-6.836e-8_sp)*t4+8.5258e-6_sp)*t4+3.5803e-5_sp
real(sp), dimension(:), allocatable, target d
logical function dbg_set(vrb)
real(sp), dimension(:,:), allocatable, target rho1
real(sp), dimension(:,:), allocatable, target t1
real(sp), dimension(:,:), allocatable, target rho
real(sp), dimension(:,:), allocatable, target s1
subroutine fatal_error(ER1, ER2, ER3, ER4)
real(sp), dimension(:), allocatable, target grav_n
subroutine n2e3d(NVAR, EVAR)
integer, parameter dbg_sbr
real(sp), dimension(:,:), allocatable, target zz