*IF DEF,W02_1A WVV0F401.8 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.15524 C GTS2F400.15525 C Use, duplication or disclosure of this code is subject to the GTS2F400.15526 C restrictions as set forth in the contract. GTS2F400.15527 C GTS2F400.15528 C Meteorological Office GTS2F400.15529 C London Road GTS2F400.15530 C BRACKNELL GTS2F400.15531 C Berkshire UK GTS2F400.15532 C RG12 2SZ GTS2F400.15533 C GTS2F400.15534 C If no contract has been raised with this copy of the code, the use, GTS2F400.15535 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.15536 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.15537 C Modelling at the above address. GTS2F400.15538 C ******************************COPYRIGHT****************************** GTS2F400.15539 C GTS2F400.15540 C AIRSEA.3 C AIRSEA.4SUBROUTINE AIRSEA (U10, TAUW, US, Z0, IJS, IJL, 1AIRSEA.5 *CALL ARGWVAL
AIRSEA.6 *CALL ARGWVCP
AIRSEA.7 *CALL ARGWVTB
AIRSEA.8 & icode) AIRSEA.9 AIRSEA.10 *CALL PARWVTB
AIRSEA.11 *CALL PARCONS
AIRSEA.12 AIRSEA.13 *CALL TYPWVCP
AIRSEA.14 *CALL TYPWVTB
AIRSEA.15 *CALL TYPWVAL
AIRSEA.16 AIRSEA.17 C ---------------------------------------------------------------------- AIRSEA.18 C AIRSEA.19 C**** *AIRSEA* - DETERMINE TOTAL STRESS IN SURFACE LAYER. AIRSEA.20 C AIRSEA.21 C P.A.E.M. JANSSEN KNMI AUGUST 1990 AIRSEA.22 C AIRSEA.23 C* PURPOSE. AIRSEA.24 C -------- AIRSEA.25 C AIRSEA.26 C COMPUTE TOTAL STRESS. AIRSEA.27 C AIRSEA.28 C** INTERFACE. AIRSEA.29 C ---------- AIRSEA.30 C AIRSEA.31 C *CALL* *AIRSEA (U10, TAUW, US, Z0, IJS, IJL)* AIRSEA.32 C *U10* - INPUT BLOCK OF WINDSPEEDS U10. AIRSEA.33 C *TAUW* - INPUT BLOCK OF WAVE STRESSES. AIRSEA.34 C *US* - OUTPUT BLOCK OF SURFACE STRESSES. AIRSEA.35 C *ZO* - OUTPUT BLOCK OF ROUGHNESS LENGTH. AIRSEA.36 C *IJS* - INDEX OF FIRST GRIDPOINT. AIRSEA.37 C *IJL* - INDEX OF LAST GRIDPOINT. AIRSEA.38 C AIRSEA.39 C METHOD. AIRSEA.40 C ------- AIRSEA.41 C AIRSEA.42 C USE TABLE TAUT(TAUW,U) AND LINEAR INTERPOLATION. AIRSEA.43 C AIRSEA.44 C EXTERNALS. AIRSEA.45 C ---------- AIRSEA.46 C AIRSEA.47 C NONE. AIRSEA.48 C AIRSEA.49 C REFERENCE. AIRSEA.50 C --------- AIRSEA.51 C AIRSEA.52 C NONE. AIRSEA.53 C AIRSEA.54 C ---------------------------------------------------------------------- AIRSEA.55 C AIRSEA.56 DIMENSION U10(NIBLO), TAUW(NIBLO), US(NIBLO), Z0(NIBLO) AIRSEA.57 C AIRSEA.58 C ---------------------------------------------------------------------- AIRSEA.59 C AIRSEA.60 C* 1. DETERMINE TOTAL STRESS FROM TABLE. AIRSEA.61 C ---------------------------------- AIRSEA.62 C AIRSEA.63 if(deltauw.le.0.or.delu.le.0) then AIRSEA.64 WRITE(6,*)'error in airsea deltauw or delu is zero: setting icode' GIE0F403.47 icode=1 AIRSEA.66 goto 999 AIRSEA.67 endif AIRSEA.68 AIRSEA.69 1000 CONTINUE AIRSEA.70 DO 1001 IJ=IJS,IJL AIRSEA.71 XI = TAUW(IJ)/DELTAUW AIRSEA.72 I = MIN ( ITAUMAX-1, INT(XI) ) AIRSEA.73 DELI1 = XI - FLOAT(I) AIRSEA.74 DELI2 = 1. - DELI1 AIRSEA.75 XJ = U10(IJ)/DELU AIRSEA.76 J = MIN ( JUMAX-1, INT(XJ) ) AIRSEA.77 DELJ1 = XJ - FLOAT(J) AIRSEA.78 DELJ2 = 1. - DELJ1 AIRSEA.79 DELTOLD = (TAUT(I,J )*DELI2 + TAUT(I+1,J )*DELI1)*DELJ2 AIRSEA.80 1 + (TAUT(I,J+1)*DELI2 + TAUT(I+1,J+1)*DELI1)*DELJ1 AIRSEA.81 US(IJ) = SQRT(DELTOLD) AIRSEA.82 1001 CONTINUE AIRSEA.83 C AIRSEA.84 C* 2. DETERMINE ROUGHNESS LENGTH. AIRSEA.85 C --------------------------- AIRSEA.86 C AIRSEA.87 2000 CONTINUE AIRSEA.88 DO 2001 IJ=IJS,IJL AIRSEA.89 UST = MAX (US(IJ), 0.000001) AIRSEA.90 X = MIN (TAUW(IJ)/UST**2, 0.999) AIRSEA.91 Z0(IJ) = ALPHA*UST**2 / (G*SQRT(1.-X)) AIRSEA.92 2001 CONTINUE AIRSEA.93 C AIRSEA.94 999 continue AIRSEA.95 RETURN AIRSEA.96 END AIRSEA.97 *ENDIF AIRSEA.98