*IF DEF,A16_1A DUCT1A.2
C ******************************COPYRIGHT****************************** GTS2F400.2323
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.2324
C GTS2F400.2325
C Use, duplication or disclosure of this code is subject to the GTS2F400.2326
C restrictions as set forth in the contract. GTS2F400.2327
C GTS2F400.2328
C Meteorological Office GTS2F400.2329
C London Road GTS2F400.2330
C BRACKNELL GTS2F400.2331
C Berkshire UK GTS2F400.2332
C RG12 2SZ GTS2F400.2333
C GTS2F400.2334
C If no contract has been raised with this copy of the code, the use, GTS2F400.2335
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.2336
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.2337
C Modelling at the above address. GTS2F400.2338
C ******************************COPYRIGHT****************************** GTS2F400.2339
C GTS2F400.2340
CLL SUBROUTINES DUCT, STRETCH, SMOOTH, LUBATT-------------------------- DUCT1A.3
CLL DUCT1A.4
CLL PURPOSES: DUCT1A.5
CLL DUCT: TO CALCULTE RADIO DUCT INTENSITY AND HEIGHT DUCT1A.6
CLL SUITABLE FOR ROTATED GRIDS DUCT1A.7
CLL DUCT1A.8
CLL STRETCH: CALCULATES SEA TEMPERATURE OVER THE OPEN OCEAN WITH DUCT1A.9
CLL COASTAL LAND POINTS, GIVEN THE SEA TEMPERATURE FROM DUCT1A.10
CLL ADJACENT SEA POINTS DUCT1A.11
CLL DUCT1A.12
CLL SMOOTH: CALCULATES WEIGHTED SMOOTHED VALUES FOR ALL INTERIOR DUCT1A.13
CLL GRID POINTS DUCT1A.14
CLL DUCT1A.15
CLL STRETCH, SMOOTH AND LUBATT SUITABLE FOR ROTATED GRIDS DUCT1A.16
CLL DUCT1A.17
CLL LUBATT: CALCULATES EVAPORATION DUCT HEIGHT AND INTENSITY. DUCT1A.18
CLL DUCT1A.19
CLL DUCT1A.20
CLL DUCT: DUCT1A.21
CLL D.Robinson <- programmer of some or all of previous code or changes DUCT1A.22
CLL STRETCH: DUCT1A.23
CLL P.Smith <- programmer of some or all of previous code or changes DUCT1A.24
CLL DUCT1A.25
CLL Model Modification history from model version 3.0: DUCT1A.26
CLL version Date DUCT1A.27
CLL DUCT1A.28
CLL DUCT1A.29
CLL PROGRAMMING STANDARD: UNIFIED MODEL DOCUMENTATION PAPER NO. 4, DUCT1A.30
CLL VERSION 2, DATED 18/01/90 DUCT1A.31
CLL DUCT1A.32
CLL Logical components covered : D484 DUCT1A.33
CLL DUCT1A.34
CLL Project task : DUCT1A.35
CLL DUCT1A.36
CLL External documentation: DUCT1A.37
CLL DUCT1A.38
CLLEND ----------------------------------------------------------------- DUCT1A.39
C DUCT1A.40
C*L ARGUMENTS:---------------------------------------------------------- DUCT1A.41
SUBROUTINE DUCT 2,15DUCT1A.42
1 (PSTAR,TSTAR,THETA,Q,U,V,AK,BK,AKH,BKH,LAND, DUCT1A.43
3 DUCT_HEIGHT,MAX_WAVELENGTH,P_EXNER_HALF, DUCT1A.44
4 P_LEVELS,Q_LEVELS,ROW_LENGTH,P_ROWS,U_ROWS,P_FIELD,U_FIELD) DUCT1A.45
C----------------------------------------------------------------------- DUCT1A.46
IMPLICIT NONE DUCT1A.47
C----------------------------------------------------------------------- DUCT1A.48
*CALL C_R_CP
DUCT1A.49
C This gives R,CP and KAPPA=R/CP DUCT1A.50
*CALL C_EPSLON
DUCT1A.51
C This gives EPSILON DUCT1A.52
*CALL C_0_DG_C
DUCT1A.53
C This gives ZERODEGC DUCT1A.54
*CALL C_MDI
DUCT1A.55
C This gives RMDI and IMDI DUCT1A.56
C----------------------------------------------------------------------- DUCT1A.57
INTEGER DUCT1A.58
* P_LEVELS ! IN No of pressure levels DUCT1A.59
*, Q_LEVELS ! IN No of humidity levels DUCT1A.60
*, ROW_LENGTH ! IN No of points in row DUCT1A.61
*, P_ROWS ! IN No of rows in pressure grid DUCT1A.62
*, U_ROWS ! IN No of rows in (u,v) grid DUCT1A.63
*, P_FIELD ! IN No of points in pressure grid DUCT1A.64
*, U_FIELD ! IN No of points in (u,v) grid DUCT1A.65
C----------------------------------------------------------------------- DUCT1A.66
REAL DUCT1A.67
* PSTAR(P_FIELD) ! IN Pressure at the surface of the earth DUCT1A.68
*, TSTAR(P_FIELD) ! IN Temperature at the surface of the earth DUCT1A.69
*, THETA(P_FIELD,P_LEVELS)! IN Potential temperature DUCT1A.70
*, P_EXNER_HALF(P_FIELD,P_LEVELS+1)! IN Exner pressure at half levs DUCT1A.71
*, U(U_FIELD,P_LEVELS) ! IN Easterly component of wind DUCT1A.72
*, V(U_FIELD,P_LEVELS) ! IN Northerly component of wind DUCT1A.73
*, Q(P_FIELD,Q_LEVELS) ! IN Specific humidity DUCT1A.74
*, DUCT_HEIGHT(P_FIELD) ! OUT evaporation duct height in metres DUCT1A.75
*, MAX_WAVELENGTH(P_FIELD)! OUT Maximum wavelength propagated by DUCT1A.76
* ! duct (duct intensity) in metres DUCT1A.77
REAL DUCT1A.78
* AK(P_LEVELS) !IN Hybrid Coords. A and B values for DUCT1A.79
*, BK(P_LEVELS) !IN model full levels DUCT1A.80
*, AKH(P_LEVELS+1) !IN Hybrid Coords. A and B values for DUCT1A.81
*, BKH(P_LEVELS+1) !IN model half levels. DUCT1A.82
C----------------------------------------------------------------------- DUCT1A.83
LOGICAL DUCT1A.84
* LAND(P_FIELD) ! IN TRUE if land; FALSE if sea DUCT1A.85
C*---------------------------------------------------------------------- DUCT1A.86
C DUCT1A.87
C*L WORKSPACE USAGE----------------------------------------------------- DUCT1A.88
C*---------------------------------------------------------------------- DUCT1A.89
C DUCT1A.90
C*L EXTERNAL SUBROUTINES CALLED----------------------------------------- DUCT1A.91
EXTERNAL STRETCH,SMOOTH,LUBATT DUCT1A.92
C*---------------------------------------------------------------------- DUCT1A.93
C DUCT1A.94
C----------------------------------------------------------------------- DUCT1A.95
C LOCAL CONSTANTS DUCT1A.96
C----------------------------------------------------------------------- DUCT1A.97
REAL DUCT1A.98
* RT ! Used in the calculation of dew point DUCT1A.99
*, R_OVER_M ! gas constant/molecular weight of water DUCT1A.100
*, RLO ! latent heat of evaporation at 0 deg C DUCT1A.101
*, RLE ! rate of change of latent heat with temp at 0 deg C DUCT1A.102
PARAMETER(RT=3.66E-3, DUCT1A.103
& R_OVER_M=461.5, DUCT1A.104
& RLO=2.5E6, DUCT1A.105
& RLE=-2.73E3) DUCT1A.106
C----------------------------------------------------------------------- DUCT1A.107
C LOCAL VARIABLES DUCT1A.108
C----------------------------------------------------------------------- DUCT1A.109
INTEGER DUCT1A.110
* I ! Loop counter DUCT1A.111
*, I1,J ! Row number/position in row for WRITE statement DUCT1A.112
*, ROW_NO,COL_NO ! temporary DUCT1A.113
REAL DUCT1A.114
* P_ON_LVL_1 ! Pressure on level 1 DUCT1A.115
*, P1,P2 ! Pressure on half levels 1 and 2 DUCT1A.116
*, P_EXNER_FULL ! Exner pressure on full model level DUCT1A.117
*, T_ON_LVL_1 ! Temperature on level 1 DUCT1A.118
*, HUMIDITY ! Specific humidity on level 1 DUCT1A.119
*, VAPOUR_PRESSURE DUCT1A.120
*, R1 ! Latent heat of evaporation DUCT1A.121
*, R2 DUCT1A.122
*, T_DEW(P_FIELD) ! dew point temperature DUCT1A.123
*, T_DRY(P_FIELD) ! dry bulb temperature DUCT1A.124
*, WSPEED(P_FIELD) ! windspeed of points on theta grid DUCT1A.125
*, T_SEA(P_FIELD) ! sea surface temperature DUCT1A.126
*, SMOOTHED_T_SEA(P_FIELD) ! smoothed sea surface temperature DUCT1A.127
*, SMOOTHED_T_DEW(P_FIELD) ! smoothed dewpoint temperature DUCT1A.128
*, SMOOTHED_T_DRY(P_FIELD) ! smoothed dry bulb temperature DUCT1A.129
*, SMOOTHED_WSPEED(P_FIELD)! smoothed windspeed DUCT1A.130
*, TEMP(P_FIELD) DUCT1A.131
C DUCT1A.132
*IF DEF,MPP GPB1F403.1520
*CALL PARVARS
GPB1F403.1521
*ENDIF GPB1F403.1522
*CALL P_EXNERC
DUCT1A.133
DUCT1A.134
C--- Put temperature to degree C------------------------------------- DUCT1A.135
DO I=1,P_FIELD DUCT1A.136
TEMP(I)=TSTAR(I)-ZERODEGC DUCT1A.137
ENDDO DUCT1A.138
DO 444 I=1,P_FIELD DUCT1A.139
C----------------------------------------------------------------------- DUCT1A.140
CL 2. Calculate dew point temperature DUCT1A.141
C----------------------------------------------------------------------- DUCT1A.142
P_ON_LVL_1=AK(1)+BK(1)*PSTAR(I) DUCT1A.143
HUMIDITY=Q(I,1) ! Units KG/KG also press in Pascals DUCT1A.144
IF(HUMIDITY.LE.1.0E-3) HUMIDITY=1.0E-3 DUCT1A.145
VAPOUR_PRESSURE=(HUMIDITY*PSTAR(I)/100.)/(EPSILON+HUMIDITY) DUCT1A.146
VAPOUR_PRESSURE=VAPOUR_PRESSURE/6.11 DUCT1A.147
P1 = AKH(1) + BKH(1)*PSTAR(I) DUCT1A.148
P2 = AKH(2) + BKH(2)*PSTAR(I) DUCT1A.149
P_EXNER_FULL = P_EXNER_C DUCT1A.150
+ (P_EXNER_HALF(I,2),P_EXNER_HALF(I,1),P2,P1,KAPPA) DUCT1A.151
T_ON_LVL_1 = THETA(I,1) * P_EXNER_FULL DUCT1A.152
R1=RLO+RLE*(T_ON_LVL_1-ZERODEGC) ! Latent heat for new temp DUCT1A.153
R2=RT-LOG(VAPOUR_PRESSURE)*R_OVER_M/R1 DUCT1A.154
T_DEW(I)=1.0/R2 DUCT1A.155
C----------------------------------------------------------------------- DUCT1A.156
CL 3. Store dry bulb temperature DUCT1A.157
C----------------------------------------------------------------------- DUCT1A.158
T_DRY(I)=T_ON_LVL_1 DUCT1A.159
444 CONTINUE DUCT1A.160
C----------------------------------------------------------------------- DUCT1A.161
CL 4. Calculate wind speed DUCT1A.162
C----------------------------------------------------------------------- DUCT1A.163
DO I=1,U_FIELD DUCT1A.164
TEMP(I)=SQRT(U(I,1)*U(I,1)+V(I,1)*V(I,1)) DUCT1A.165
ENDDO DUCT1A.166
CALL UV_TO_P_FULL
(TEMP,WSPEED,U_FIELD,P_FIELD,ROW_LENGTH,P_ROWS) DUCT1A.167
C----------------------------------------------------------------------- DUCT1A.168
CL 5. Calculate sea surface temperature DUCT1A.169
C----------------------------------------------------------------------- DUCT1A.170
CALL STRETCH
(TSTAR,T_SEA,LAND,ROW_LENGTH,P_ROWS,P_FIELD) DUCT1A.171
C----------------------------------------------------------------------- DUCT1A.172
C----------------------------------------------------------------------- DUCT1A.173
CL 6. Smooth sea surface temp, dry bulb temp, dew point temp and DUCT1A.174
CL wind speed fields DUCT1A.175
C----------------------------------------------------------------------- DUCT1A.176
*IF DEF,MPP GPB1F403.1523
CALL SWAPBOUNDS
(T_SEA,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1524
CALL SWAPBOUNDS
(T_DRY,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1525
CALL SWAPBOUNDS
(T_DEW,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1526
CALL SWAPBOUNDS
(WSPEED,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1527
*ENDIF GPB1F403.1528
WRITE(6,1011) DUCT1A.177
1011 FORMAT(' Successfully reached the start of subroutine SMOOTH') DUCT1A.178
CALL SMOOTH
(T_SEA,SMOOTHED_T_SEA,ROW_LENGTH,P_ROWS,P_FIELD) DUCT1A.179
CALL SMOOTH
(T_DRY,SMOOTHED_T_DRY,ROW_LENGTH,P_ROWS,P_FIELD) DUCT1A.180
CALL SMOOTH
(T_DEW,SMOOTHED_T_DEW,ROW_LENGTH,P_ROWS,P_FIELD) DUCT1A.181
CALL SMOOTH
(WSPEED,SMOOTHED_WSPEED,ROW_LENGTH,P_ROWS,P_FIELD) DUCT1A.182
*IF DEF,MPP GPB1F403.1529
! Ensure all smoothed variables have halos filled. GPB1F403.1530
GPB1F403.1531
CALL SWAPBOUNDS
(SMOOTHED_T_SEA,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1532
CALL SWAPBOUNDS
(SMOOTHED_T_DRY,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1533
CALL SWAPBOUNDS
(SMOOTHED_T_DEW,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1534
CALL SWAPBOUNDS
(SMOOTHED_WSPEED,ROW_LENGTH,P_ROWS,Offx,Offy,1) GPB1F403.1535
*ENDIF GPB1F403.1536
GPB1F403.1537
C----------------------------------------------------------------------- DUCT1A.183
CL 7. Calculate DUCT height using smoothed parameters. DUCT1A.184
CL Set DUCT height missing over land. DUCT1A.185
C----------------------------------------------------------------------- DUCT1A.186
DO 460 I=1,P_FIELD DUCT1A.187
IF (LAND(I)) THEN DUCT1A.188
DUCT_HEIGHT(I)=RMDI DUCT1A.189
C DUCT_HEIGHT(I)=0. DUCT1A.190
MAX_WAVELENGTH(I)=RMDI DUCT1A.191
C MAX_WAVELENGTH(I)=0. DUCT1A.192
ELSE DUCT1A.193
CALL LUBATT
(SMOOTHED_WSPEED(I),SMOOTHED_T_DRY(I)-ZERODEGC, DUCT1A.194
& SMOOTHED_T_SEA(I)-ZERODEGC,SMOOTHED_T_DEW(I)-ZERODEGC, DUCT1A.195
& DUCT_HEIGHT(I),MAX_WAVELENGTH(I)) DUCT1A.196
J=MOD(I,ROW_LENGTH) DUCT1A.197
I1=(I-J)/ROW_LENGTH+1 DUCT1A.198
ENDIF DUCT1A.199
460 CONTINUE DUCT1A.200
RETURN DUCT1A.201
END DUCT1A.202
C----------------------------------------------------------------------- DUCT1A.203
C*L ARGUMENTS:---------------------------------------------------------- DUCT1A.204
SUBROUTINE STRETCH 1,2DUCT1A.205
& (TSTAR,T_SEA,LAND,ROW_LENGTH,P_ROWS,P_FIELD) DUCT1A.206
C----------------------------------------------------------------------- DUCT1A.207
IMPLICIT NONE DUCT1A.208
C----------------------------------------------------------------------- DUCT1A.209
INTEGER DUCT1A.210
* ROW_LENGTH ! IN No of columns of longitude DUCT1A.211
*, P_ROWS ! IN No of rows of latitude DUCT1A.212
*, P_FIELD ! IN No of points in pressure grid DUCT1A.213
C----------------------------------------------------------------------- DUCT1A.214
REAL DUCT1A.215
* TSTAR(P_FIELD) ! IN Temperature at the surface of the earth DUCT1A.216
*, T_SEA(P_FIELD) ! OUT Sea temperature over open ocean DUCT1A.217
C----------------------------------------------------------------------- DUCT1A.218
LOGICAL DUCT1A.219
* LAND(P_FIELD) ! IN TRUE if land; FALSE if sea DUCT1A.220
C*---------------------------------------------------------------------- DUCT1A.221
C DUCT1A.222
C*L WORKSPACE USAGE----------------------------------------------------- DUCT1A.223
*IF DEF,MPP GPB1F403.1538
! Copies of input arrays but with extra large EW halos to allow the GPB1F403.1539
! fourth order "stretching" operation GPB1F403.1540
GPB1F403.1541
REAL TSTAR_COPY((ROW_LENGTH+2)*P_ROWS) GPB1F403.1542
LOGICAL LAND_COPY((ROW_LENGTH+2)*P_ROWS) GPB1F403.1543
GPB1F403.1544
*ENDIF GPB1F403.1545
C*---------------------------------------------------------------------- DUCT1A.224
C DUCT1A.225
C*L EXTERNAL SUBROUTINES CALLED----------------------------------------- DUCT1A.226
C NONE DUCT1A.227
C*---------------------------------------------------------------------- DUCT1A.228
C DUCT1A.229
*IF DEF,MPP GPB1F403.1546
*CALL PARVARS
GPB1F403.1547
*ENDIF GPB1F403.1548
C----------------------------------------------------------------------- DUCT1A.230
C LOCAL VARIABLES DUCT1A.231
C----------------------------------------------------------------------- DUCT1A.232
INTEGER DUCT1A.233
* I,J ! Loop counters DUCT1A.234
&, point_src,point_set ! points of source data and to be set GPB1F403.1549
&, offset ! distance of POINT_SET from POINT_SRC GPB1F403.1550
&, max_off ! maximum distance allowed from POINT_SRC GPB1F403.1551
GPB1F403.1552
LOGICAL GPB1F403.1553
& end GPB1F403.1554
GPB1F403.1555
*IF DEF,MPP GPB1F403.1556
INTEGER GPB1F403.1557
& extended_ROW_LENGTH GPB1F403.1558
&, extended_P_FIELD GPB1F403.1559
&, extended_point_src GPB1F403.1560
&, extended_J GPB1F403.1561
GPB1F403.1562
*ENDIF GPB1F403.1563
GPB1F403.1564
max_off=2 ! Go up to two points to look for a value to use GPB1F403.1565
GPB1F403.1566
*IF DEF,MPP GPB1F403.1567
! Copy input arrays into _COPY arrays which contain larger EW halos GPB1F403.1568
GPB1F403.1569
extended_ROW_LENGTH=ROW_LENGTH+2 GPB1F403.1570
extended_P_FIELD=extended_ROW_LENGTH*P_ROWS GPB1F403.1571
GPB1F403.1572
CALL COPY_FIELD
(TSTAR,TSTAR_COPY, GPB1F403.1573
& P_FIELD,extended_P_FIELD, GPB1F403.1574
& ROW_LENGTH,P_ROWS,1, GPB1F403.1575
& Offx,Offy, GPB1F403.1576
& 2,Offy,.TRUE.) GPB1F403.1577
GPB1F403.1578
CALL COPY_FIELD
(LAND,LAND_COPY, GPB1F403.1579
& P_FIELD,extended_P_FIELD, GPB1F403.1580
& ROW_LENGTH,P_ROWS,1, GPB1F403.1581
& Offx,Offy, GPB1F403.1582
& 2,Offy,.TRUE.) GPB1F403.1583
GPB1F403.1584
*ENDIF GPB1F403.1585
GPB1F403.1586
*IF -DEF,MPP GPB1F403.1587
DO I=1,P_ROWS GPB1F403.1588
GPB1F403.1589
DO J=1,ROW_LENGTH GPB1F403.1590
*ELSE GPB1F403.1591
DO I=1+Offy,P_ROWS-Offy ! miss halos GPB1F403.1592
GPB1F403.1593
DO J=1+Offx,ROW_LENGTH-Offx ! miss halos GPB1F403.1594
GPB1F403.1595
extended_J=J+1 GPB1F403.1596
*ENDIF GPB1F403.1597
GPB1F403.1598
! Transfer sea temperatures 1 or 2 grid lengths westward onto GPB1F403.1599
! land points GPB1F403.1600
GPB1F403.1601
offset=0 GPB1F403.1602
end=.FALSE. GPB1F403.1603
GPB1F403.1604
point_set=(I-1)*ROW_LENGTH+J GPB1F403.1605
GPB1F403.1606
*IF DEF,GLOBAL GPB1F403.1607
DO WHILE ((offset .LE. max_off) .AND. (.NOT. end)) GPB1F403.1608
*ELSE GPB1F403.1609
DO WHILE (((offset .LE. max_off) .AND. (.NOT. end)) .AND. GPB1F403.1610
*IF -DEF,MPP GPB1F403.1611
& (J+offset .LE. ROW_LENGTH)) GPB1F403.1612
*ELSE GPB1F403.1613
& .NOT. ((atright) .AND. GPB1F403.1614
& (extended_J+offset .LE. GPB1F403.1615
& extended_ROW_LENGTH-max_off))) GPB1F403.1616
*ENDIF GPB1F403.1617
*ENDIF GPB1F403.1618
GPB1F403.1619
*IF -DEF,MPP GPB1F403.1620
point_src=(I-1)*ROW_LENGTH+ GPB1F403.1621
& MOD(J+offset-1,ROW_LENGTH)+1 GPB1F403.1622
*ELSE GPB1F403.1623
point_src=(I-1)*extended_ROW_LENGTH+ GPB1F403.1624
& MOD(extended_J+offset-1,extended_ROW_LENGTH)+1 GPB1F403.1625
*ENDIF GPB1F403.1626
GPB1F403.1627
*IF -DEF,MPP GPB1F403.1628
IF (.NOT. LAND(point_src)) THEN GPB1F403.1629
T_SEA(point_set)=TSTAR(point_src) GPB1F403.1630
*ELSE GPB1F403.1631
IF (.NOT. LAND_COPY(point_src)) THEN GPB1F403.1632
T_SEA(point_set)=TSTAR_COPY(point_src) GPB1F403.1633
*ENDIF GPB1F403.1634
end=.TRUE. GPB1F403.1635
ENDIF GPB1F403.1636
GPB1F403.1637
offset=offset+1 GPB1F403.1638
GPB1F403.1639
ENDDO GPB1F403.1640
GPB1F403.1641
IF (.NOT. end) THEN GPB1F403.1642
T_SEA(point_set)=TSTAR(point_set) GPB1F403.1643
ENDIF GPB1F403.1644
GPB1F403.1645
! Transfer sea temperatures 1 or 2 grid lengths eastwars onto GPB1F403.1646
! land points GPB1F403.1647
GPB1F403.1648
*IF DEF,GLOBAL GPB1F403.1649
IF (LAND(point_set)) THEN GPB1F403.1650
*ELSE GPB1F403.1651
*IF -DEF,MPP GPB1F403.1652
IF (LAND(point_set) .AND. (J .NE. 1)) THEN GPB1F403.1653
*ELSE GPB1F403.1654
IF (LAND(point_set) .AND. GPB1F403.1655
& .NOT.(atleft .AND. extended_J .EQ. max_off+1)) THEN GPB1F403.1656
*ENDIF GPB1F403.1657
*ENDIF GPB1F403.1658
GPB1F403.1659
offset=0 GPB1F403.1660
end=.FALSE. GPB1F403.1661
GPB1F403.1662
*IF DEF,GLOBAL GPB1F403.1663
DO WHILE ((offset .LE. max_off) .AND. (.NOT. end)) GPB1F403.1664
*ELSE GPB1F403.1665
*IF -DEF,MPP GPB1F403.1666
DO WHILE ((offset .LE. max_off) .AND. (.NOT. end) .AND. GPB1F403.1667
& (J-offset .GE. 1)) GPB1F403.1668
*ELSE GPB1F403.1669
DO WHILE (((offset .LE. max_off) .AND. (.NOT. end)) .AND. GPB1F403.1670
& .NOT.(atleft .AND. GPB1F403.1671
& (extended_J-offset .GE. max_off+1))) GPB1F403.1672
*ENDIF GPB1F403.1673
*ENDIF GPB1F403.1674
GPB1F403.1675
GPB1F403.1676
*IF -DEF,MPP GPB1F403.1677
point_src=(I-1)*ROW_LENGTH+ GPB1F403.1678
& MOD(J-offset+ROW_LENGTH-1,ROW_LENGTH)+1 GPB1F403.1679
*ELSE GPB1F403.1680
point_src=(I-1)*extended_ROW_LENGTH+ GPB1F403.1681
& MOD(extended_J-offset+extended_ROW_LENGTH-1, GPB1F403.1682
& extended_ROW_LENGTH)+1 GPB1F403.1683
*ENDIF GPB1F403.1684
GPB1F403.1685
*IF -DEF,MPP GPB1F403.1686
IF (.NOT. (LAND(point_src))) THEN GPB1F403.1687
T_SEA(point_set)=TSTAR(point_src) GPB1F403.1688
*ELSE GPB1F403.1689
IF (.NOT. (LAND_COPY(point_src))) THEN GPB1F403.1690
T_SEA(point_set)=TSTAR_COPY(point_src) GPB1F403.1691
*ENDIF GPB1F403.1692
end=.TRUE. GPB1F403.1693
ENDIF GPB1F403.1694
GPB1F403.1695
offset=offset+1 GPB1F403.1696
GPB1F403.1697
ENDDO GPB1F403.1698
GPB1F403.1699
ENDIF GPB1F403.1700
GPB1F403.1701
ENDDO ! J : loop along row GPB1F403.1702
GPB1F403.1703
ENDDO ! I : loop over rows GPB1F403.1704
RETURN DUCT1A.334
END DUCT1A.335
C----------------------------------------------------------------------- DUCT1A.336
C DUCT1A.337
C DUCT1A.338
C*L ARGUMENTS:---------------------------------------------------------- DUCT1A.339
SUBROUTINE SMOOTH 4DUCT1A.340
& (A,ABAR,ROW_LENGTH,P_ROWS,P_FIELD) DUCT1A.341
C----------------------------------------------------------------------- DUCT1A.342
IMPLICIT NONE DUCT1A.343
C----------------------------------------------------------------------- DUCT1A.344
INTEGER DUCT1A.345
* ROW_LENGTH ! IN No of points in a row DUCT1A.346
*, P_ROWS ! IN No of rows of theta grid DUCT1A.347
*, P_FIELD ! IN No of points in pressure field DUCT1A.348
C----------------------------------------------------------------------- DUCT1A.349
REAL DUCT1A.350
* A(P_FIELD) ! IN Array to be smoothed DUCT1A.351
*, ABAR(P_FIELD) ! OUT Smoothed array DUCT1A.352
C*---------------------------------------------------------------------- DUCT1A.353
C DUCT1A.354
C*L WORKSPACE USAGE----------------------------------------------------- DUCT1A.355
C*---------------------------------------------------------------------- DUCT1A.356
C DUCT1A.357
C*L EXTERNAL SUBROUTINES CALLED----------------------------------------- DUCT1A.358
C NONE DUCT1A.359
C*---------------------------------------------------------------------- DUCT1A.360
C DUCT1A.361
C----------------------------------------------------------------------- DUCT1A.362
C LOCAL VARIABLES DUCT1A.363
C----------------------------------------------------------------------- DUCT1A.364
INTEGER DUCT1A.365
* IW1,IW2,IW3,IW4,IW5,IW6 ! Weight constants DUCT1A.366
*, I,J ! Loop counters DUCT1A.367
*, POINT ! Point being smoothed DUCT1A.368
*IF DEF,MPP GPB1F403.1705
INTEGER I_start,I_end GPB1F403.1706
GPB1F403.1707
*CALL PARVARS
GPB1F403.1708
*ENDIF GPB1F403.1709
C----------------------------------------------------------------------- DUCT1A.369
CL 1. Set weight constants DUCT1A.370
C----------------------------------------------------------------------- DUCT1A.371
IW1=1 DUCT1A.372
IW2=2 DUCT1A.373
IW3=8 DUCT1A.374
IW4=IW3+4*IW2+4*IW1 DUCT1A.375
C----------------------------------------------------------------------- DUCT1A.376
CL 2. Smooth interior points of grid DUCT1A.377
C----------------------------------------------------------------------- DUCT1A.378
*IF -DEF,MPP GPB1F403.1710
DO 300 I=2,P_ROWS-1 GPB1F403.1711
*ELSE GPB1F403.1712
IF (attop) THEN GPB1F403.1713
I_start=Offy+2 GPB1F403.1714
ELSE GPB1F403.1715
I_start=Offy+1 GPB1F403.1716
ENDIF GPB1F403.1717
IF (atbase) THEN GPB1F403.1718
I_end=P_ROWS-Offy-1 GPB1F403.1719
ELSE GPB1F403.1720
I_end=P_ROWS-Offy GPB1F403.1721
ENDIF GPB1F403.1722
GPB1F403.1723
DO 300 I=I_start,I_end GPB1F403.1724
*ENDIF GPB1F403.1725
DO 200 J=2,ROW_LENGTH-1 DUCT1A.380
POINT=(I-1)*ROW_LENGTH+J DUCT1A.381
ABAR(POINT)=(IW1*A(POINT-ROW_LENGTH-1)+IW2*A(POINT-ROW_LENGTH) DUCT1A.382
1 +IW1*A(POINT-ROW_LENGTH+1)+IW2*A(POINT-1)+IW3*A(POINT) DUCT1A.383
2 +IW2*A(POINT+1)+IW1*A(POINT+ROW_LENGTH-1) DUCT1A.384
3 +IW2*A(POINT+ROW_LENGTH)+IW1*A(POINT+ROW_LENGTH+1))/IW4 DUCT1A.385
200 CONTINUE DUCT1A.386
300 CONTINUE DUCT1A.387
C----------------------------------------------------------------------- DUCT1A.388
CL 3. Smooth top row (excluding the two end points) DUCT1A.389
C----------------------------------------------------------------------- DUCT1A.390
IW6=IW3+3*IW2+2*IW1 DUCT1A.391
*IF DEF,MPP GPB1F403.1726
IF (attop) THEN GPB1F403.1727
I=Offy+1 GPB1F403.1728
*ELSE GPB1F403.1729
I=1 GPB1F403.1730
*ENDIF GPB1F403.1731
DO 400 J=2,ROW_LENGTH-1 DUCT1A.393
POINT=(I-1)*ROW_LENGTH+J GPB1F403.1732
ABAR(POINT)=(IW2*A(POINT-1)+IW3*A(POINT)+IW2*A(POINT+1) DUCT1A.395
1 +IW1*A(POINT+ROW_LENGTH-1)+IW2*A(POINT+ROW_LENGTH) DUCT1A.396
2 +IW1*A(POINT+ROW_LENGTH+1))/IW6 DUCT1A.397
400 CONTINUE DUCT1A.398
*IF DEF,MPP GPB1F403.1733
ENDIF GPB1F403.1734
*ENDIF GPB1F403.1735
C----------------------------------------------------------------------- DUCT1A.399
CL 4. Smooth bottom row (excluding the two end points) DUCT1A.400
C----------------------------------------------------------------------- DUCT1A.401
*IF DEF,MPP GPB1F403.1736
IF (atbase) THEN GPB1F403.1737
I=P_ROWS-Offy GPB1F403.1738
*ELSE GPB1F403.1739
I=P_ROWS GPB1F403.1740
*ENDIF GPB1F403.1741
DO 500 J=2,ROW_LENGTH-1 DUCT1A.403
POINT=(I-1)*ROW_LENGTH+J DUCT1A.404
ABAR(POINT)=(IW1*A(POINT-ROW_LENGTH-1)+IW2*A(POINT-ROW_LENGTH) DUCT1A.405
1 +IW1*A(POINT-ROW_LENGTH+1)+IW2*A(POINT-1)+IW3*A(POINT) DUCT1A.406
2 +IW2*A(POINT+1))/IW6 DUCT1A.407
500 CONTINUE DUCT1A.408
*IF DEF,MPP GPB1F403.1742
ENDIF GPB1F403.1743
*ENDIF GPB1F403.1744
C----------------------------------------------------------------------- DUCT1A.409
CL 5. Smooth four corner grid points DUCT1A.410
C----------------------------------------------------------------------- DUCT1A.411
IW5=IW3+2*IW2+IW1 DUCT1A.412
*IF DEF,MPP GPB1F403.1745
IF (attop .AND. atleft) THEN GPB1F403.1746
POINT=Offy*ROW_LENGTH+Offx+1 GPB1F403.1747
*ELSE GPB1F403.1748
POINT=1 GPB1F403.1749
*ENDIF GPB1F403.1750
ABAR(POINT)=(IW3*A(POINT)+IW2*A(POINT+1)+IW2*A(POINT+ROW_LENGTH) DUCT1A.414
1 +IW1*A(POINT+ROW_LENGTH+1))/IW5 DUCT1A.415
*IF DEF,MPP GPB1F403.1751
ENDIF GPB1F403.1752
GPB1F403.1753
IF (attop .AND. atright) THEN GPB1F403.1754
POINT=(Offy+1)*ROW_LENGTH-Offx GPB1F403.1755
*ELSE GPB1F403.1756
POINT=ROW_LENGTH GPB1F403.1757
*ENDIF GPB1F403.1758
ABAR(POINT)=(IW2*A(POINT-1)+IW3*A(POINT) DUCT1A.417
1 +IW1*A(POINT+ROW_LENGTH-1)+IW2*A(POINT+ROW_LENGTH))/IW5 DUCT1A.418
*IF DEF,MPP GPB1F403.1759
ENDIF GPB1F403.1760
GPB1F403.1761
IF (atbase .AND. atleft) THEN GPB1F403.1762
POINT=(P_ROWS-Offy-1)*ROW_LENGTH+Offx+1 GPB1F403.1763
*ELSE GPB1F403.1764
POINT=(P_ROWS-1)*ROW_LENGTH+1 GPB1F403.1765
*ENDIF GPB1F403.1766
ABAR(POINT)=(IW2*A(POINT-ROW_LENGTH)+IW1*A(POINT-ROW_LENGTH+1) DUCT1A.420
1 +IW3*A(POINT)+IW2*A(POINT+1))/IW5 DUCT1A.421
*IF DEF,MPP GPB1F403.1767
ENDIF GPB1F403.1768
GPB1F403.1769
IF (atbase .AND. atright) THEN GPB1F403.1770
POINT=(P_ROWS-Offy)*ROW_LENGTH-Offx GPB1F403.1771
*ELSE GPB1F403.1772
POINT=P_ROWS*ROW_LENGTH GPB1F403.1773
*ENDIF GPB1F403.1774
ABAR(POINT)=(IW1*A(POINT-ROW_LENGTH-1)+IW2*A(POINT-ROW_LENGTH) DUCT1A.423
1 +IW2*A(POINT-1)+IW3*A(POINT))/IW5 DUCT1A.424
*IF DEF,MPP GPB1F403.1775
ENDIF GPB1F403.1776
*ENDIF GPB1F403.1777
C----------------------------------------------------------------------- DUCT1A.425
CL 6. Smooth left hand column DUCT1A.426
C----------------------------------------------------------------------- DUCT1A.427
*IF -DEF,MPP GPB1F403.1778
J=1 DUCT1A.428
DO 600 I=2,P_ROWS-1 DUCT1A.429
*ELSE GPB1F403.1779
IF (atleft) THEN GPB1F403.1780
GPB1F403.1781
J=Offx+1 GPB1F403.1782
IF (attop) THEN GPB1F403.1783
I_start=Offy+2 GPB1F403.1784
ELSE GPB1F403.1785
I_start=Offy+1 GPB1F403.1786
ENDIF GPB1F403.1787
GPB1F403.1788
IF (atbase) THEN GPB1F403.1789
I_end=P_ROWS-Offy-1 GPB1F403.1790
ELSE GPB1F403.1791
I_end=P_ROWS-Offy GPB1F403.1792
ENDIF GPB1F403.1793
GPB1F403.1794
DO 600 I=I_start,I_end GPB1F403.1795
*ENDIF GPB1F403.1796
POINT=(I-1)*ROW_LENGTH+J DUCT1A.430
C----------------------------------------------------------------------- DUCT1A.431
*IF -DEF,GLOBAL DUCT1A.432
C----------------------------------------------------------------------- DUCT1A.433
ABAR(POINT)=(IW2*A(POINT-ROW_LENGTH)+IW1*A(POINT-ROW_LENGTH+1) DUCT1A.434
1 +IW3*A(POINT)+IW2*A(POINT+1) DUCT1A.435
2 +IW2*A(POINT+ROW_LENGTH)+IW1*A(POINT+ROW_LENGTH+1))/IW6 DUCT1A.436
C----------------------------------------------------------------------- DUCT1A.437
*ENDIF DUCT1A.438
C DUCT1A.439
*IF DEF,GLOBAL,AND,-DEF,MPP GPB1F403.1797
C----------------------------------------------------------------------- DUCT1A.441
ABAR(POINT)=(IW1*A(POINT-1)+IW2*A(POINT-ROW_LENGTH) DUCT1A.442
1 +IW1*A(POINT-ROW_LENGTH+1)+IW2*A(POINT+ROW_LENGTH-1) DUCT1A.443
2 +IW3*A(POINT)+IW2*A(POINT+1)+IW1*A(POINT+2*ROW_LENGTH-1) DUCT1A.444
3 +IW2*A(POINT+ROW_LENGTH)+IW1*A(POINT+ROW_LENGTH+1))/IW4 DUCT1A.445
C----------------------------------------------------------------------- DUCT1A.446
*ENDIF DUCT1A.447
C----------------------------------------------------------------------- DUCT1A.448
600 CONTINUE DUCT1A.449
*IF DEF,MPP GPB1F403.1798
ENDIF GPB1F403.1799
*ENDIF GPB1F403.1800
C----------------------------------------------------------------------- DUCT1A.450
CL 7. Smooth right hand column DUCT1A.451
C----------------------------------------------------------------------- DUCT1A.452
*IF -DEF,MPP GPB1F403.1801
J=ROW_LENGTH DUCT1A.453
DO 700 I=2,P_ROWS-1 DUCT1A.454
*ELSE GPB1F403.1802
IF (atright) THEN GPB1F403.1803
GPB1F403.1804
J=ROW_LENGTH-Offx GPB1F403.1805
IF (attop) THEN GPB1F403.1806
I_start=Offy+2 GPB1F403.1807
ELSE GPB1F403.1808
I_start=Offy+1 GPB1F403.1809
ENDIF GPB1F403.1810
GPB1F403.1811
IF (atbase) THEN GPB1F403.1812
I_end=P_ROWS-Offy-1 GPB1F403.1813
ELSE GPB1F403.1814
I_end=P_ROWS-Offy GPB1F403.1815
ENDIF GPB1F403.1816
GPB1F403.1817
DO 700 I=I_start,I_end GPB1F403.1818
*ENDIF GPB1F403.1819
POINT=(I-1)*ROW_LENGTH+J DUCT1A.455
C----------------------------------------------------------------------- DUCT1A.456
*IF -DEF,GLOBAL DUCT1A.457
C----------------------------------------------------------------------- DUCT1A.458
ABAR(POINT)=(IW1*A(POINT-ROW_LENGTH-1)+IW2*A(POINT-ROW_LENGTH) DUCT1A.459
1 +IW2*A(POINT-1)+IW3*A(POINT) DUCT1A.460
2 +IW1*A(POINT+ROW_LENGTH-1)+IW2*A(POINT+ROW_LENGTH))/IW6 DUCT1A.461
C----------------------------------------------------------------------- DUCT1A.462
*ENDIF DUCT1A.463
C DUCT1A.464
*IF DEF,GLOBAL,AND,-DEF,MPP GPB1F403.1820
C----------------------------------------------------------------------- DUCT1A.466
ABAR(POINT)=(IW1*A(POINT-ROW_LENGTH-1)+IW2*A(POINT-ROW_LENGTH) DUCT1A.467
1 +IW1*A(POINT-2*ROW_LENGTH+1)+IW2*A(POINT-1)+IW3*A(POINT) DUCT1A.468
2 +IW2*A(POINT-ROW_LENGTH+1)+IW1*A(POINT+ROW_LENGTH-1) DUCT1A.469
3 +IW2*A(POINT+ROW_LENGTH)+IW1*A(POINT+1))/IW4 DUCT1A.470
C----------------------------------------------------------------------- DUCT1A.471
*ENDIF DUCT1A.472
C----------------------------------------------------------------------- DUCT1A.473
700 CONTINUE DUCT1A.474
*IF DEF,MPP GPB1F403.1821
ENDIF GPB1F403.1822
*ENDIF GPB1F403.1823
RETURN DUCT1A.475
END DUCT1A.476
C----------------------------------------------------------------------- DUCT1A.477
C DUCT1A.478
C DUCT1A.479
C*L ARGUMENTS:---------------------------------------------------------- DUCT1A.480
SUBROUTINE LUBATT 1DUCT1A.481
1 (WINDSPEED,T_DRY,T_SEA,T_DEW,DUCT_HEIGHT, DUCT1A.482
2 MAX_WAVELENGTH) DUCT1A.483
C----------------------------------------------------------------------- DUCT1A.484
IMPLICIT NONE DUCT1A.485
C----------------------------------------------------------------------- DUCT1A.486
REAL DUCT1A.487
* WINDSPEED ! IN wind speed in m/s DUCT1A.488
*, T_DRY ! IN dry bulb temperature in deg C DUCT1A.489
*, T_SEA ! IN sea surface temperature in deg C DUCT1A.490
*, T_DEW ! IN dew point temperature in deg C DUCT1A.491
*, DUCT_HEIGHT ! OUT evaporation duct height in metres DUCT1A.492
*, MAX_WAVELENGTH ! OUT Maximum wavelength propagated by duct DUCT1A.493
* ! (duct intensity) in metres DUCT1A.494
C*---------------------------------------------------------------------- DUCT1A.495
C DUCT1A.496
C*L WORKSPACE USAGE----------------------------------------------------- DUCT1A.497
INTEGER DUCT1A.498
* VSEA(6) ! values of sea temperature in table DUCT1A.499
*, VWIND(6) ! values of windspeed in table DUCT1A.500
*, VDPD(6) ! values of sea temp depression in table DUCT1A.501
*, VSTD(6) ! values of dewpoint depression in table DUCT1A.502
*, IH(6,6,6,6) DUCT1A.503
*, IW(6,6,6,6) DUCT1A.504
*, H(16) ! values of IH for upper and lower points of four DUCT1A.505
* ! dimensional space formed by intervals DUCT1A.506
*, W(16) ! As H but for IW DUCT1A.507
C----------------------------------------------------------------------- DUCT1A.508
REAL DUCT1A.509
* H2(8) ! Heights found by linear interpolation for change in DUCT1A.510
* ! sea temperature DUCT1A.511
*, H3(4) ! " " " " " " " " wind speed DUCT1A.512
*, H4(2) ! " " " " " " " " dewpoint depression DUCT1A.513
*, W2(8) ! Wavelength found by linear interpolation for change DUCT1A.514
* ! in sea temperature DUCT1A.515
*, W3(4) ! " " " " " " " " wind speed DUCT1A.516
*, W4(2) ! " " " " " " " " dewpoint depression DUCT1A.517
C*---------------------------------------------------------------------- DUCT1A.518
C DUCT1A.519
C*L EXTERNAL SUBROUTINES CALLED----------------------------------------- DUCT1A.520
C NONE DUCT1A.521
C*---------------------------------------------------------------------- DUCT1A.522
C DUCT1A.523
C----------------------------------------------------------------------- DUCT1A.524
C LOCAL CONSTANTS DUCT1A.525
C----------------------------------------------------------------------- DUCT1A.526
INTEGER DUCT1A.527
* NSEA ! No of values of sea temperature in table DUCT1A.528
*, NWIN ! No of values of windspeed in table DUCT1A.529
*, NDPD ! No of values of dewpoint depression in table DUCT1A.530
*, NSTD ! No of values of sea temp depression in table DUCT1A.531
PARAMETER(NSEA=6,NWIN=6,NDPD=6,NSTD=6) DUCT1A.532
C----------------------------------------------------------------------- DUCT1A.533
C LOCAL VARIABLES DUCT1A.534
C----------------------------------------------------------------------- DUCT1A.535
INTEGER DUCT1A.536
* NS ! lower boundary of sea temperature interval DUCT1A.537
*, NW ! lower boundary of wind interval DUCT1A.538
*, NT ! lower boundary of sea temp depression interval DUCT1A.539
*, ND ! lower boundary of dewpoint depression interval DUCT1A.540
*, I,J,K ! Loop counters for DATA statements DUCT1A.541
REAL DUCT1A.542
* STD ! sea temp depression = T_DRY - T_SEA DUCT1A.543
*, DPD ! dewpoint depression = T_DRY - T_DEW DUCT1A.544
*, RS ! =(T_SEA-VSEA(NS))/(VSEA(NS+1)-VSEA(NS)) DUCT1A.545
*, RW ! =(WINDSPEED-VWIND(NW))/(VWIND(NW+1)-VWIND(NW)) DUCT1A.546
*, RT ! =(STD-VSTD(NT))/(VSTD(NT+1)-VSTD(NT)) DUCT1A.547
*, RD ! =(DPD-VDPD(ND))/(VDPD(ND+1)-VDPD(ND)) DUCT1A.548
C----------------------------------------------------------------------- DUCT1A.549
CL 1. DATA statements for six values of sea temp, wind speed, DUCT1A.550
CL dewpoint depression and sea temp depression DUCT1A.551
C----------------------------------------------------------------------- DUCT1A.552
DATA VSEA/-2,8,16,22,26,28/ DUCT1A.553
DATA VWIND/1,3,5,8,14,20/ DUCT1A.554
DATA VDPD/0,2,4,6,8,10/ DUCT1A.555
DATA VSTD/-12,-8,-4,0,2,4/ DUCT1A.556
C----------------------------------------------------------------------- DUCT1A.557
CL 2. DATA initialisation for IH(6,6,6,6) array DUCT1A.558
C----------------------------------------------------------------------- DUCT1A.559
C first parameter 6 sea temperature depression values. DUCT1A.560
C second parameter 6 dewpoint depression values. DUCT1A.561
C third parameter 6 wind speed values. DUCT1A.562
C fourth parameter 6 sea temperature values. DUCT1A.563
C DUCT1A.564
C T_SEA -2 DUCT1A.565
C WINDSPEED 1,3,5 DUCT1A.566
C DUCT1A.567
C----------------------------------------------------------------------- DUCT1A.568
DATA (((IH(I,J,K,1),I=1,6),J=1,6),K=1,3)/ DUCT1A.569
* 1,1,1,1,0,0, DUCT1A.570
* 1,1,1,7,30,30, DUCT1A.571
* 1,1,1,10,30,30, DUCT1A.572
* 1,1,2,4,30,30, DUCT1A.573
* 1,1,2,5,30,30, DUCT1A.574
* 1,1,2,5,30,30, DUCT1A.575
C DUCT1A.576
* 1,1,1,1,0,0, DUCT1A.577
* 1,1,2,2,3,1, DUCT1A.578
* 1,2,2,3,30,30, DUCT1A.579
* 1,2,2,5,30,30, DUCT1A.580
* 1,2,3,6,30,30, DUCT1A.581
* 1,1,3,6,23,30, DUCT1A.582
C DUCT1A.583
* 1,1,1,1,0,0, DUCT1A.584
* 1,2,2,2,1,1, DUCT1A.585
* 2,2,2,3,5,30, DUCT1A.586
* 1,2,3,5,30,30, DUCT1A.587
* 1,3,3,6,30,30, DUCT1A.588
* 1,2,4,7,30,30/ DUCT1A.589
C----------------------------------------------------------------------- DUCT1A.590
C T_SEA -2 DUCT1A.591
C WINDSPEED 8,14,20 DUCT1A.592
C----------------------------------------------------------------------- DUCT1A.593
DATA (((IH(I,J,K,1),I=1,6),J=1,6),K=4,6)/ DUCT1A.594
* 1,1,1,1,0,0, DUCT1A.595
* 2,2,2,2,1,1, DUCT1A.596
* 2,3,3,3,3,3, DUCT1A.597
* 2,3,4,5,7,12, DUCT1A.598
* 1,4,4,6,12,30, DUCT1A.599
* 1,3,5,7,20,30, DUCT1A.600
C DUCT1A.601
* 1,1,1,1,0,0, DUCT1A.602
* 2,3,3,2,1,1, DUCT1A.603
* 3,3,4,4,3,3, DUCT1A.604
* 3,4,5,5,6,6, DUCT1A.605
* 3,5,6,7,8,9, DUCT1A.606
* 2,5,6,8,10,13, DUCT1A.607
C DUCT1A.608
* 1,1,1,1,0,0, DUCT1A.609
* 2,3,3,2,1,1, DUCT1A.610
* 3,4,4,4,4,3, DUCT1A.611
* 4,5,5,5,6,5, DUCT1A.612
* 4,5,6,7,7,8, DUCT1A.613
* 3,6,7,8,9,10/ DUCT1A.614
C----------------------------------------------------------------------- DUCT1A.615
C T_SEA 8 DUCT1A.616
C WINDSPEED 1,3,5 DUCT1A.617
C----------------------------------------------------------------------- DUCT1A.618
DATA (((IH(I,J,K,2),I=1,6),J=1,6),K=1,3)/ DUCT1A.619
* 1,1,1,1,0,0, DUCT1A.620
* 2,2,2,3,30,0, DUCT1A.621
* 2,2,2,5,30,30, DUCT1A.622
* 2,2,3,5,30,30, DUCT1A.623
* 2,2,3,5,30,30, DUCT1A.624
* 2,3,3,5,30,30, DUCT1A.625
C DUCT1A.626
* 2,2,2,1,0,0, DUCT1A.627
* 3,3,3,3,3,0, DUCT1A.628
* 3,3,3,6,30,30, DUCT1A.629
* 4,4,4,7,30,30, DUCT1A.630
* 4,4,4,7,30,30, DUCT1A.631
* 4,4,5,8,30,30, DUCT1A.632
C DUCT1A.633
* 2,3,2,1,0,0, DUCT1A.634
* 4,4,4,3,1,0, DUCT1A.635
* 4,4,4,6,30,30, DUCT1A.636
* 5,5,5,7,30,30, DUCT1A.637
* 5,5,6,8,30,30, DUCT1A.638
* 5,6,6,10,30,30/ DUCT1A.639
C----------------------------------------------------------------------- DUCT1A.640
C T_SEA 8 DUCT1A.641
C WINDSPEED 8,14,20 DUCT1A.642
C----------------------------------------------------------------------- DUCT1A.643
DATA (((IH(I,J,K,2),I=1,6),J=1,6),K=4,6)/ DUCT1A.644
* 3,4,3,1,0,0, DUCT1A.645
* 5,5,4,3,1,0, DUCT1A.646
* 6,6,6,6,6,3, DUCT1A.647
* 6,6,7,8,18,30, DUCT1A.648
* 6,7,7,10,30,30, DUCT1A.649
* 7,7,8,11,30,30, DUCT1A.650
C DUCT1A.651
* 4,5,4,1,0,0, DUCT1A.652
* 7,7,6,3,1,0, DUCT1A.653
* 8,8,7,6,5,3, DUCT1A.654
* 9,9,9,9,9,8, DUCT1A.655
* 9,10,10,11,14,17, DUCT1A.656
* 10,10,11,13,18,30, DUCT1A.657
C DUCT1A.658
* 4,5,4,1,0,0, DUCT1A.659
* 9,8,7,4,1,0, DUCT1A.660
* 10,9,9,7,5,3, DUCT1A.661
* 10,11,11,9,9,7, DUCT1A.662
* 11,12,12,12,13,12, DUCT1A.663
* 12,13,13,14,16,17/ DUCT1A.664
C----------------------------------------------------------------------- DUCT1A.665
C T_SEA 16 DUCT1A.666
C WINDSPEED 1,3,5 DUCT1A.667
C----------------------------------------------------------------------- DUCT1A.668
DATA (((IH(I,J,K,3),I=1,6),J=1,6),K=1,3)/ DUCT1A.669
* 2,2,2,1,0,0, DUCT1A.670
* 3,3,3,4,30,0, DUCT1A.671
* 3,3,3,4,30,30, DUCT1A.672
* 3,3,3,5,30,30, DUCT1A.673
* 3,3,4,5,30,30, DUCT1A.674
* 3,4,4,6,30,30, DUCT1A.675
C DUCT1A.676
* 4,4,3,1,0,0, DUCT1A.677
* 5,4,4,4,2,0, DUCT1A.678
* 5,5,5,6,30,30, DUCT1A.679
* 5,5,5,8,30,30, DUCT1A.680
* 6,6,6,8,30,30, DUCT1A.681
* 6,6,6,9,30,30, DUCT1A.682
C DUCT1A.683
* 5,5,4,1,0,0, DUCT1A.684
* 6,6,5,5,1,0, DUCT1A.685
* 7,6,6,7,30,30, DUCT1A.686
* 7,7,7,9,30,30, DUCT1A.687
* 7,8,8,11,30,30, DUCT1A.688
* 8,8,9,12,30,30/ DUCT1A.689
C----------------------------------------------------------------------- DUCT1A.690
C T_SEA 16 DUCT1A.691
C WINDSPEED 8,14,20 DUCT1A.692
C----------------------------------------------------------------------- DUCT1A.693
DATA (((IH(I,J,K,3),I=1,6),J=1,6),K=4,6)/ DUCT1A.694
* 5,6,5,1,0,0, DUCT1A.695
* 8,8,7,5,1,0, DUCT1A.696
* 9,8,8,8,11,3, DUCT1A.697
* 9,9,9,11,30,30, DUCT1A.698
* 10,10,10,13,30,30, DUCT1A.699
* 10,11,11,15,30,30, DUCT1A.700
C DUCT1A.701
* 8,9,6,1,0,0, DUCT1A.702
* 11,10,9,5,1,0, DUCT1A.703
* 12,12,11,9,7,3, DUCT1A.704
* 13,13,13,13,15,13, DUCT1A.705
* 14,14,15,16,23,30, DUCT1A.706
* 15,15,16,18,30,30, DUCT1A.707
C DUCT1A.708
* 9,10,7,1,0,0, DUCT1A.709
* 14,13,10,5,1,0, DUCT1A.710
* 15,15,13,10,7,3, DUCT1A.711
* 17,16,16,14,13,10, DUCT1A.712
* 18,18,18,17,19,19, DUCT1A.713
* 19,19,19,20,25,29/ DUCT1A.714
C----------------------------------------------------------------------- DUCT1A.715
C T_SEA 22 DUCT1A.716
C WINDSPEED 1,3,5 DUCT1A.717
C----------------------------------------------------------------------- DUCT1A.718
DATA (((IH(I,J,K,4),I=1,6),J=1,6),K=1,3)/ DUCT1A.719
* 3,3,2,1,0,0, DUCT1A.720
* 3,3,3,4,30,0, DUCT1A.721
* 4,4,4,5,30,30, DUCT1A.722
* 4,4,4,5,30,30, DUCT1A.723
* 4,4,5,6,30,30, DUCT1A.724
* 4,4,5,6,30,30, DUCT1A.725
C DUCT1A.726
* 5,5,4,1,0,0, DUCT1A.727
* 6,5,5,5,3,0, DUCT1A.728
* 6,6,6,7,30,30, DUCT1A.729
* 7,7,7,8,30,30, DUCT1A.730
* 7,7,7,9,30,30, DUCT1A.731
* 8,8,8,10,30,30, DUCT1A.732
C DUCT1A.733
* 7,6,5,1,0,0, DUCT1A.734
* 8,7,6,6,1,0, DUCT1A.735
* 8,8,8,9,30,30, DUCT1A.736
* 9,9,9,11,30,30, DUCT1A.737
* 9,9,10,12,30,30, DUCT1A.738
* 10,10,10,13,30,30/ DUCT1A.739
C----------------------------------------------------------------------- DUCT1A.740
C T_SEA 22 DUCT1A.741
C WINDSPEED 8,14,20 DUCT1A.742
C----------------------------------------------------------------------- DUCT1A.743
DATA (((IH(I,J,K,4),I=1,6),J=1,6),K=4,6)/ DUCT1A.744
* 9,8,6,1,0,0, DUCT1A.745
* 10,10,8,6,1,0, DUCT1A.746
* 11,11,10,10,19,4, DUCT1A.747
* 12,12,12,13,30,30, DUCT1A.748
* 13,13,13,15,30,30, DUCT1A.749
* 13,13,14,17,30,30, DUCT1A.750
C DUCT1A.751
* 11,11,8,1,0,0, DUCT1A.752
* 15,14,11,6,1,0, DUCT1A.753
* 16,15,14,12,10,3, DUCT1A.754
* 17,17,16,17,20,18, DUCT1A.755
* 18,18,18,20,30,30, DUCT1A.756
* 19,19,20,22,30,30, DUCT1A.757
C DUCT1A.758
* 14,14,9,1,0,0, DUCT1A.759
* 19,17,14,7,2,0, DUCT1A.760
* 20,19,17,13,9,3, DUCT1A.761
* 22,21,20,18,18,13, DUCT1A.762
* 23,23,23,22,26,27, DUCT1A.763
* 24,24,25,26,30,30/ DUCT1A.764
C----------------------------------------------------------------------- DUCT1A.765
C T_SEA 26 DUCT1A.766
C WINDSPEED 1,3,5 DUCT1A.767
C----------------------------------------------------------------------- DUCT1A.768
DATA (((IH(I,J,K,5),I=1,6),J=1,6),K=1,3)/ DUCT1A.769
* 4,3,3,1,0,0, DUCT1A.770
* 4,4,4,4,30,0, DUCT1A.771
* 4,4,4,5,30,30, DUCT1A.772
* 4,4,5,6,30,30, DUCT1A.773
* 5,5,5,6,30,30, DUCT1A.774
* 5,5,6,7,15,30, DUCT1A.775
C DUCT1A.776
* 6,5,4,1,0,0, DUCT1A.777
* 7,6,5,6,3,0, DUCT1A.778
* 7,7,7,8,30,30, DUCT1A.779
* 8,8,7,9,30,30, DUCT1A.780
* 8,8,8,10,30,30, DUCT1A.781
* 9,9,9,11,22,30, DUCT1A.782
C DUCT1A.783
* 8,7,5,1,0,0, DUCT1A.784
* 9,8,7,6,1,0, DUCT1A.785
* 10,9,9,10,30,30, DUCT1A.786
* 10,10,10,12,30,30, DUCT1A.787
* 11,11,11,13,30,30, DUCT1A.788
* 11,11,12,14,25,30/ DUCT1A.789
C----------------------------------------------------------------------- DUCT1A.790
C T_SEA 26 DUCT1A.791
C WINDSPEED 8,14,20 DUCT1A.792
C----------------------------------------------------------------------- DUCT1A.793
DATA (((IH(I,J,K,5),I=1,6),J=1,6),K=4,6)/ DUCT1A.794
* 11,9,7,1,0,0, DUCT1A.795
* 12,11,10,7,1,0, DUCT1A.796
* 13,12,12,12,27,4, DUCT1A.797
* 14,14,13,15,30,30, DUCT1A.798
* 15,15,15,17,30,30, DUCT1A.799
* 15,15,16,19,25,30, DUCT1A.800
C DUCT1A.801
* 14,13,9,1,0,0, DUCT1A.802
* 17,16,13,8,1,0, DUCT1A.803
* 19,18,16,14,12,4, DUCT1A.804
* 20,20,19,19,25,25, DUCT1A.805
* 21,21,21,22,30,30, DUCT1A.806
* 22,22,23,25,27,30, DUCT1A.807
C DUCT1A.808
* 18,17,11,1,0,0, DUCT1A.809
* 22,20,16,8,2,0, DUCT1A.810
* 24,23,20,15,11,4, DUCT1A.811
* 26,25,23,21,21,16, DUCT1A.812
* 27,27,26,26,30,30, DUCT1A.813
* 28,28,29,30,28,30/ DUCT1A.814
C----------------------------------------------------------------------- DUCT1A.815
C T_SEA 28 DUCT1A.816
C WINDSPEED 1,3,5 DUCT1A.817
C----------------------------------------------------------------------- DUCT1A.818
DATA (((IH(I,J,K,6),I=1,6),J=1,6),K=1,3)/ DUCT1A.819
* 4,3,3,1,0,0, DUCT1A.820
* 4,4,4,4,30,0, DUCT1A.821
* 4,4,4,5,30,30, DUCT1A.822
* 5,5,5,6,30,30, DUCT1A.823
* 5,5,5,6,13,30, DUCT1A.824
* 5,5,6,7,16,30, DUCT1A.825
C DUCT1A.826
* 7,6,4,1,0,0, DUCT1A.827
* 7,7,6,6,3,0, DUCT1A.828
* 8,8,7,8,30,30, DUCT1A.829
* 9,8,8,9,30,30, DUCT1A.830
* 9,9,9,10,20,30, DUCT1A.831
* 9,9,9,11,24,30, DUCT1A.832
C DUCT1A.833
* 9,8,6,1,0,0, DUCT1A.834
* 10,9,8,6,1,0, DUCT1A.835
* 10,10,9,10,30,30, DUCT1A.836
* 11,11,11,12,30,30, DUCT1A.837
* 12,12,12,13,22,30, DUCT1A.838
* 12,12,12,15,27,30/ DUCT1A.839
C----------------------------------------------------------------------- DUCT1A.840
C T_SEA 28 DUCT1A.841
C WINDSPEED 8,14,20 DUCT1A.842
C----------------------------------------------------------------------- DUCT1A.843
DATA (((IH(I,J,K,6),I=1,6),J=1,6),K=4,6)/ DUCT1A.844
* 12,10,7,1,0,0, DUCT1A.845
* 13,12,10,7,1,0, DUCT1A.846
* 14,13,12,12,30,4, DUCT1A.847
* 15,14,14,15,30,30, DUCT1A.848
* 16,16,16,18,30,30, DUCT1A.849
* 16,16,17,20,27,30, DUCT1A.850
C DUCT1A.851
* 17,14,10,1,0,0, DUCT1A.852
* 19,17,14,8,1,0, DUCT1A.853
* 20,19,18,15,13,4, DUCT1A.854
* 22,21,20,20,27,30, DUCT1A.855
* 23,22,22,24,30,30, DUCT1A.856
* 24,24,24,27,29,30, DUCT1A.857
C DUCT1A.858
* 20,18,12,1,0,0, DUCT1A.859
* 24,21,17,9,2,0, DUCT1A.860
* 26,24,22,16,12,4, DUCT1A.861
* 28,27,25,23,23,18, DUCT1A.862
* 29,29,28,28,30,30, DUCT1A.863
* 30,30,30,30,30,30/ DUCT1A.864
C----------------------------------------------------------------------- DUCT1A.865
CL 3. DATA initialisation for IW(6,6,6,6) array DUCT1A.866
C----------------------------------------------------------------------- DUCT1A.867
C T_SEA -2 DUCT1A.868
C WINDSPEED 1,3,5 DUCT1A.869
C----------------------------------------------------------------------- DUCT1A.870
DATA (((IW(I,J,K,1),I=1,6),J=1,6),K=1,3)/ DUCT1A.871
* 0,0,0,0,0,0, DUCT1A.872
* 0,1,1,2,41,47, DUCT1A.873
* 1,1,1,4,51,73, DUCT1A.874
* 1,1,2,3,51,77, DUCT1A.875
* 1,1,2,4,51,77, DUCT1A.876
* 1,1,2,5,50,76, DUCT1A.877
C DUCT1A.878
* 0,0,0,0,0,0, DUCT1A.879
* 1,1,1,1,1,0, DUCT1A.880
* 1,1,1,2,21,26, DUCT1A.881
* 1,1,2,4,28,37, DUCT1A.882
* 1,2,3,5,32,41, DUCT1A.883
* 1,1,3,5,25,41, DUCT1A.884
C DUCT1A.885
* 0,0,0,0,0,0, DUCT1A.886
* 1,1,1,1,0,0, DUCT1A.887
* 1,1,1,2,2,13, DUCT1A.888
* 1,1,2,4,17,22, DUCT1A.889
* 1,2,2,5,22,27, DUCT1A.890
* 1,2,4,6,25,31/ DUCT1A.891
C----------------------------------------------------------------------- DUCT1A.892
C T_SEA -2 DUCT1A.893
C WINDSPEED 8,14,20 DUCT1A.894
C----------------------------------------------------------------------- DUCT1A.895
DATA (((IW(I,J,K,1),I=1,6),J=1,6),K=4,6)/ DUCT1A.896
* 0,0,0,0,0,0, DUCT1A.897
* 1,1,1,1,0,0, DUCT1A.898
* 1,2,2,2,2,1, DUCT1A.899
* 1,2,3,4,4,6, DUCT1A.900
* 1,3,3,5,9,21, DUCT1A.901
* 1,2,4,6,16,25, DUCT1A.902
C DUCT1A.903
* 0,0,0,0,0,0, DUCT1A.904
* 1,2,2,1,0,0, DUCT1A.905
* 2,2,3,2,2,1, DUCT1A.906
* 2,3,4,4,4,4, DUCT1A.907
* 2,4,5,6,6,7, DUCT1A.908
* 1,4,5,7,8,11, DUCT1A.909
C DUCT1A.910
* 0,0,0,0,0,0, DUCT1A.911
* 1,2,2,1,0,0, DUCT1A.912
* 2,2,2,2,2,1, DUCT1A.913
* 2,3,4,3,4,3, DUCT1A.914
* 3,4,5,6,5,6, DUCT1A.915
* 2,5,6,7,8,8/ DUCT1A.916
C----------------------------------------------------------------------- DUCT1A.917
C T_SEA 8 DUCT1A.918
C WINDSPEED 1,3,5 DUCT1A.919
C----------------------------------------------------------------------- DUCT1A.920
DATA (((IW(I,J,K,2),I=1,6),J=1,6),K=1,3)/ DUCT1A.921
* 1,1,1,0,0,0, DUCT1A.922
* 2,2,2,5,41,0, DUCT1A.923
* 2,2,2,4,62,73, DUCT1A.924
* 2,2,3,5,61,83, DUCT1A.925
* 2,2,4,6,60,82, DUCT1A.926
* 2,4,4,6,60,81, DUCT1A.927
C DUCT1A.928
* 2,2,1,0,0,0, DUCT1A.929
* 3,3,3,2,1,0, DUCT1A.930
* 3,3,3,5,27,27, DUCT1A.931
* 5,5,5,7,35,42, DUCT1A.932
* 5,5,5,8,41,52, DUCT1A.933
* 5,5,6,10,45,54, DUCT1A.934
C DUCT1A.935
* 2,3,1,0,0,0, DUCT1A.936
* 4,4,3,2,0,0, DUCT1A.937
* 4,4,4,5,17,13, DUCT1A.938
* 6,6,6,7,25,26, DUCT1A.939
* 6,6,7,9,31,33, DUCT1A.940
* 6,8,8,12,35,38/ DUCT1A.941
C----------------------------------------------------------------------- DUCT1A.942
C T_SEA 8 DUCT1A.943
C WINDSPEED 8,14,20 DUCT1A.944
C----------------------------------------------------------------------- DUCT1A.945
DATA (((IW(I,J,K,2),I=1,6),J=1,6),K=4,6)/ DUCT1A.946
* 3,3,2,0,0,0, DUCT1A.947
* 5,5,3,2,0,0, DUCT1A.948
* 7,6,6,5,4,1, DUCT1A.949
* 7,7,8,8,15,21, DUCT1A.950
* 7,9,8,11,30,28, DUCT1A.951
* 9,9,10,13,34,33, DUCT1A.952
C DUCT1A.953
* 4,4,2,0,0,0, DUCT1A.954
* 7,7,5,2,0,0, DUCT1A.955
* 9,8,7,5,3,1, DUCT1A.956
* 10,10,10,9,8,6, DUCT1A.957
* 11,12,12,12,14,16, DUCT1A.958
* 13,13,14,15,20,32, DUCT1A.959
C DUCT1A.960
* 4,4,2,0,0,0, DUCT1A.961
* 9,7,6,2,0,0, DUCT1A.962
* 11,9,9,6,3,2, DUCT1A.963
* 11,12,12,9,8,5, DUCT1A.964
* 13,14,14,13,13,11, DUCT1A.965
* 15,16,16,17,18,18/ DUCT1A.966
C----------------------------------------------------------------------- DUCT1A.967
C T_SEA 16 DUCT1A.968
C WINDSPEED 1,3,5 DUCT1A.969
C----------------------------------------------------------------------- DUCT1A.970
DATA (((IW(I,J,K,3),I=1,6),J=1,6),K=1,3)/ DUCT1A.971
* 3,2,2,0,0,0, DUCT1A.972
* 4,4,3,3,41,0, DUCT1A.973
* 4,4,4,4,73,75, DUCT1A.974
* 5,4,4,6,72,90, DUCT1A.975
* 5,5,6,7,71,89, DUCT1A.976
* 5,7,7,9,70,89, DUCT1A.977
C DUCT1A.978
* 5,5,3,0,0,0, DUCT1A.979
* 7,5,5,3,1,0, DUCT1A.980
* 8,7,7,6,32,28, DUCT1A.981
* 8,8,7,10,41,48, DUCT1A.982
* 10,10,9,11,47,60, DUCT1A.983
* 11,10,10,14,51,68, DUCT1A.984
C DUCT1A.985
* 7,6,4,0,0,0, DUCT1A.986
* 9,8,6,4,0,0, DUCT1A.987
* 11,9,8,7,22,15, DUCT1A.988
* 11,11,10,11,32,31, DUCT1A.989
* 12,13,12,15,38,39, DUCT1A.990
* 14,14,15,18,43,45/ DUCT1A.991
C----------------------------------------------------------------------- DUCT1A.992
C T_SEA 16 DUCT1A.993
C WINDSPEED 8,14,20 DUCT1A.994
C----------------------------------------------------------------------- DUCT1A.995
DATA (((IW(I,J,K,3),I=1,6),J=1,6),K=4,6)/ DUCT1A.996
* 7,7,4,0,0,0, DUCT1A.997
* 12,10,8,4,0,0, DUCT1A.998
* 14,11,10,8,8,1, DUCT1A.999
* 14,14,13,13,31,26, DUCT1A.1000
* 17,16,15,18,38,34, DUCT1A.1001
* 17,19,18,23,43,40, DUCT1A.1002
C DUCT1A.1003
* 11,10,5,0,0,0, DUCT1A.1004
* 16,13,10,4,0,0, DUCT1A.1005
* 18,17,14,9,6,2, DUCT1A.1006
* 21,20,18,16,16,11, DUCT1A.1007
* 23,23,23,22,29,34, DUCT1A.1008
* 26,25,26,27,42,40, DUCT1A.1009
C DUCT1A.1010
* 12,11,6,0,0,0, DUCT1A.1011
* 20,17,11,4,0,0, DUCT1A.1012
* 23,21,16,10,6,2, DUCT1A.1013
* 27,34,22,17,14,9, DUCT1A.1014
* 30,29,27,23,24,21, DUCT1A.1015
* 33,32,31,30,35,38/ DUCT1A.1016
C----------------------------------------------------------------------- DUCT1A.1017
C T_SEA 22 DUCT1A.1018
C WINDSPEED 1,3,5 DUCT1A.1019
C----------------------------------------------------------------------- DUCT1A.1020
DATA (((IW(I,J,K,4),I=1,6),J=1,6),K=1,3)/ DUCT1A.1021
* 5,4,2,0,0,0, DUCT1A.1022
* 5,5,4,3,42,0, DUCT1A.1023
* 7,7,6,6,84,78, DUCT1A.1024
* 7,7,7,7,83,99, DUCT1A.1025
* 8,7,9,10,82,97, DUCT1A.1026
* 8,8,10,11,81,96, DUCT1A.1027
C DUCT1A.1028
* 8,7,4,0,0,0, DUCT1A.1029
* 11,8,7,4,1,0, DUCT1A.1030
* 11,10,9,8,36,29, DUCT1A.1031
* 14,13,12,12,46,53, DUCT1A.1032
* 14,14,13,15,51,66, DUCT1A.1033
* 17,16,16,18,53,75, DUCT1A.1034
C DUCT1A.1035
* 12,8,5,0,0,0, DUCT1A.1036
* 14,11,8,5,0,0, DUCT1A.1037
* 15,14,12,11,27,16, DUCT1A.1038
* 18,17,15,16,37,35, DUCT1A.1039
* 18,18,18,19,45,44, DUCT1A.1040
* 21,20,19,23,50,50/ DUCT1A.1041
C----------------------------------------------------------------------- DUCT1A.1042
C T_SEA 22 DUCT1A.1043
C WINDSPEED 8,14,20 DUCT1A.1044
C----------------------------------------------------------------------- DUCT1A.1045
DATA (((IW(I,J,K,4),I=1,6),J=1,6),K=4,6)/ DUCT1A.1046
* 15,11,6,0,0,0, DUCT1A.1047
* 18,16,10,5,0,0, DUCT1A.1048
* 21,19,15,12,17,2, DUCT1A.1049
* 24,22,20,19,37,30, DUCT1A.1050
* 26,25,24,24,44,40, DUCT1A.1051
* 27,26,27,30,50,47, DUCT1A.1052
C DUCT1A.1053
* 18,15,8,0,0,0, DUCT1A.1054
* 26,22,14,5,0,0, DUCT1A.1055
* 30,26,21,14,9,2, DUCT1A.1056
* 33,31,27,24,24,18, DUCT1A.1057
* 36,35,32,32,44,39, DUCT1A.1058
* 40,38,38,38,50,46, DUCT1A.1059
C DUCT1A.1060
* 23,19,9,0,0,0, DUCT1A.1061
* 33,27,18,6,1,0, DUCT1A.1062
* 37,32,25,15,8,2, DUCT1A.1063
* 43,38,33,25,22,13, DUCT1A.1064
* 46,44,41,35,38,35, DUCT1A.1065
* 50,48,48,45,50,46/ DUCT1A.1066
C----------------------------------------------------------------------- DUCT1A.1067
C T_SEA 26 DUCT1A.1068
C WINDSPEED 1,3,5 DUCT1A.1069
C----------------------------------------------------------------------- DUCT1A.1070
DATA (((IW(I,J,K,5),I=1,6),J=1,6),K=1,3)/ DUCT1A.1071
* 7,5,4,0,0,0, DUCT1A.1072
* 7,7,6,4,43,0, DUCT1A.1073
* 8,7,7,7,92,80, DUCT1A.1074
* 8,8,9,10,91,105, DUCT1A.1075
* 11,10,10,11,89,104, DUCT1A.1076
* 11,11,13,14,27,102, DUCT1A.1077
C DUCT1A.1078
* 11,8,5,0,0,0, DUCT1A.1079
* 14,11,7,6,1,0, DUCT1A.1080
* 15,14,12,11,38,30, DUCT1A.1081
* 18,17,13,14,48,57, DUCT1A.1082
* 18,18,16,18,52,70, DUCT1A.1083
* 21,21,19,22,40,79, DUCT1A.1084
C DUCT1A.1085
* 15,11,6,0,0,0, DUCT1A.1086
* 18,14,10,6,0,0, DUCT1A.1087
* 21,17,15,13,30,17, DUCT1A.1088
* 22,21,19,19,41,37, DUCT1A.1089
* 25,24,22,23,49,47, DUCT1A.1090
* 26,25,26,27,46,54/ DUCT1A.1091
C----------------------------------------------------------------------- DUCT1A.1092
C T_SEA 26 DUCT1A.1093
C WINDSPEED 8,14,20 DUCT1A.1094
C----------------------------------------------------------------------- DUCT1A.1095
DATA (((IW(I,J,K,5),I=1,6),J=1,6),K=4,6)/ DUCT1A.1096
* 20,14,8,0,0,0, DUCT1A.1097
* 24,20,15,7,0,0, DUCT1A.1098
* 27,23,20,15,26,2, DUCT1A.1099
* 31,29,24,24,41,33, DUCT1A.1100
* 34,33,30,30,49,44, DUCT1A.1101
* 35,34,34,37,45,51, DUCT1A.1102
C DUCT1A.1103
* 26,20,10,0,0,0, DUCT1A.1104
* 34,28,19,7,0,0, DUCT1A.1105
* 40,35,27,18,12,2, DUCT1A.1106
* 44,41,35,30,34,27, DUCT1A.1107
* 48,45,42,39,49,43, DUCT1A.1108
* 52,50,49,49,49,51, DUCT1A.1109
C DUCT1A.1110
* 33,26,12,0,0,0, DUCT1A.1111
* 43,35,23,7,1,0, DUCT1A.1112
* 50,44,33,19,11,2, DUCT1A.1113
* 57,51,43,32,29,17, DUCT1A.1114
* 61,58,52,46,49,43, DUCT1A.1115
* 66,63,62,59,51,50/ DUCT1A.1116
C----------------------------------------------------------------------- DUCT1A.1117
C T_SEA 28 DUCT1A.1118
C WINDSPEED 1,3,5 DUCT1A.1119
C----------------------------------------------------------------------- DUCT1A.1120
DATA (((IW(I,J,K,6),I=1,6),J=1,6),K=1,3)/ DUCT1A.1121
* 7,5,4,0,0,0, DUCT1A.1122
* 8,7,6,4,43,0, DUCT1A.1123
* 8,8,7,7,96,81, DUCT1A.1124
* 11,10,10,10,95,109, DUCT1A.1125
* 11,11,10,11,22,107, DUCT1A.1126
* 11,11,13,15,31,106, DUCT1A.1127
C DUCT1A.1128
* 14,10,5,0,0,0, DUCT1A.1129
* 15,13,9,6,1,0, DUCT1A.1130
* 18,16,13,11,40,31, DUCT1A.1131
* 21,18,16,15,49,59, DUCT1A.1132
* 22,21,19,19,34,72, DUCT1A.1133
* 23,22,20,23,46,80, DUCT1A.1134
C DUCT1A.1135
* 18,13,7,0,0,0, DUCT1A.1136
* 21,17,12,6,0,0, DUCT1A.1137
* 22,21,16,14,31,18, DUCT1A.1138
* 26,24,22,20,43,39, DUCT1A.1139
* 29,28,26,24,37,49, DUCT1A.1140
* 30,29,27,31,52,55/ DUCT1A.1141
C----------------------------------------------------------------------- DUCT1A.1142
C T_SEA 28 DUCT1A.1143
C WINDSPEED 8,14,20, DUCT1A.1144
C----------------------------------------------------------------------- DUCT1A.1145
DATA (((IW(I,J,K,6),I=1,6),J=1,6),K=4,6)/ DUCT1A.1146
* 23,17,9,0,0,0, DUCT1A.1147
* 27,22,15,7,0,0, DUCT1A.1148
* 31,27,21,16,31,2, DUCT1A.1149
* 35,31,27,25,43,34, DUCT1A.1150
* 39,37,34,34,51,46, DUCT1A.1151
* 40,38,38,41,52,54, DUCT1A.1152
C DUCT1A.1153
* 33,23,12,0,0,0, DUCT1A.1154
* 40,32,21,8,0,0, DUCT1A.1155
* 44,39,32,20,14,2, DUCT1A.1156
* 51,46,39,32,38,34, DUCT1A.1157
* 55,50,47,45,51,45, DUCT1A.1158
* 60,57,54,55,55,53, DUCT1A.1159
C DUCT1A.1160
* 39,30,14,0,0,0, DUCT1A.1161
* 50,39,26,9,1,0, DUCT1A.1162
* 58,49,39,22,13,2, DUCT1A.1163
* 65,58,49,37,33,20, DUCT1A.1164
* 70,66,59,51,51,45, DUCT1A.1165
* 75,72,67,61,57,53/ DUCT1A.1166
C----------------------------------------------------------------------- DUCT1A.1167
CL 4. Calculate sea temp depression and dewpoint depression DUCT1A.1168
C----------------------------------------------------------------------- DUCT1A.1169
STD = T_DRY - T_SEA DUCT1A.1170
DPD = T_DRY - T_DEW DUCT1A.1171
C----------------------------------------------------------------------- DUCT1A.1172
CL 5. Check that sea temperature lies in acceptable range DUCT1A.1173
CL Find lower boundary value of sea temperature interval DUCT1A.1174
CL for interpolation DUCT1A.1175
C----------------------------------------------------------------------- DUCT1A.1176
IF(T_SEA.LT.VSEA(1)) T_SEA = VSEA(1) DUCT1A.1177
IF(T_SEA.GT.VSEA(NSEA)) T_SEA = VSEA(NSEA) DUCT1A.1178
NS = 0 DUCT1A.1179
100 NS = NS + 1 DUCT1A.1180
IF(T_SEA.GT.VSEA(NS+1)) GO TO 100 DUCT1A.1181
C----------------------------------------------------------------------- DUCT1A.1182
CL 6. Check that wind speed lies in acceptable range DUCT1A.1183
CL Find lower boundary value of wind speed interval DUCT1A.1184
CL for interpolation DUCT1A.1185
C----------------------------------------------------------------------- DUCT1A.1186
IF(WINDSPEED.LT.VWIND(1)) WINDSPEED = VWIND(1) DUCT1A.1187
IF(WINDSPEED.GT.VWIND(NWIN)) WINDSPEED = VWIND(NWIN) DUCT1A.1188
NW = 0 DUCT1A.1189
120 NW = NW + 1 DUCT1A.1190
IF(WINDSPEED.GT.VWIND(NW+1)) GO TO 120 DUCT1A.1191
C----------------------------------------------------------------------- DUCT1A.1192
CL 7. Check that sea temperature depression lies in acceptable range DUCT1A.1193
CL Find lower boundary value of sea temperature depression DUCT1A.1194
CL for interpolation DUCT1A.1195
C----------------------------------------------------------------------- DUCT1A.1196
IF(STD.LT.VSTD(1)) STD = VSTD(1) DUCT1A.1197
IF(STD.GT.VSTD(NSTD)) THEN DUCT1A.1198
STD=VSTD(NSTD) DUCT1A.1199
ENDIF DUCT1A.1200
NT = 0 DUCT1A.1201
140 NT = NT + 1 DUCT1A.1202
IF(STD.GT.VSTD(NT+1)) GO TO 140 DUCT1A.1203
C----------------------------------------------------------------------- DUCT1A.1204
CL 8. Check that dew point depression lies in acceptable range DUCT1A.1205
CL Find lower boundary value of dew point depression DUCT1A.1206
CL for interpolation DUCT1A.1207
C----------------------------------------------------------------------- DUCT1A.1208
IF(DPD.LT.VDPD(1)) DPD = VDPD(1) DUCT1A.1209
IF(DPD.GT.VDPD(NDPD)) DPD = VDPD(NDPD) DUCT1A.1210
ND = 0 DUCT1A.1211
160 ND = ND + 1 DUCT1A.1212
IF(DPD.GT.VDPD(ND+1)) GO TO 160 DUCT1A.1213
C----------------------------------------------------------------------- DUCT1A.1214
CL 9. Four dimensional interpolation of duct height DUCT1A.1215
C----------------------------------------------------------------------- DUCT1A.1216
H(1) = IH(NT,ND,NW,NS) DUCT1A.1217
H(2) = IH(NT,ND,NW,NS+1) DUCT1A.1218
C DUCT1A.1219
H(3) = IH(NT,ND,NW+1,NS) DUCT1A.1220
H(4) = IH(NT,ND,NW+1,NS+1) DUCT1A.1221
C DUCT1A.1222
H(5) = IH(NT,ND+1,NW,NS) DUCT1A.1223
H(6) = IH(NT,ND+1,NW,NS+1) DUCT1A.1224
H(7) = IH(NT,ND+1,NW+1,NS) DUCT1A.1225
H(8) = IH(NT,ND+1,NW+1,NS+1) DUCT1A.1226
C DUCT1A.1227
H(9) = IH(NT+1,ND,NW,NS) DUCT1A.1228
H(10) =IH(NT+1,ND,NW,NS+1) DUCT1A.1229
H(11) =IH(NT+1,ND,NW+1,NS) DUCT1A.1230
H(12) =IH(NT+1,ND,NW+1,NS+1) DUCT1A.1231
H(13) =IH(NT+1,ND+1,NW,NS) DUCT1A.1232
H(14) =IH(NT+1,ND+1,NW,NS+1) DUCT1A.1233
H(15) =IH(NT+1,ND+1,NW+1,NS) DUCT1A.1234
H(16) =IH(NT+1,ND+1,NW+1,NS+1) DUCT1A.1235
C----------------------------------------------------------------------- DUCT1A.1236
C INTERPOLATE HEIGHT FOR CHANGE IN SEA TEMPERATURE DUCT1A.1237
C----------------------------------------------------------------------- DUCT1A.1238
RS = (T_SEA - VSEA(NS))/(VSEA(NS+1) - VSEA(NS)) DUCT1A.1239
H2(1) = H(1) + (H(2) - H(1)) * RS DUCT1A.1240
H2(2) = H(3) + (H(4) - H(3)) * RS DUCT1A.1241
H2(3) = H(5) + (H(6) - H(5)) * RS DUCT1A.1242
H2(4) = H(7) + (H(8) - H(7)) * RS DUCT1A.1243
H2(5) = H(9) + (H(10) - H(9)) * RS DUCT1A.1244
H2(6) = H(11) + (H(12) - H(11)) * RS DUCT1A.1245
H2(7) = H(13) + (H(14) - H(13)) * RS DUCT1A.1246
H2(8) = H(15) + (H(16) - H(15)) * RS DUCT1A.1247
C----------------------------------------------------------------------- DUCT1A.1248
C INTERPOLATE HEIGHT FOR CHANGE IN WIND SPEED DUCT1A.1249
C----------------------------------------------------------------------- DUCT1A.1250
RW = (WINDSPEED - VWIND(NW))/(VWIND(NW+1) - VWIND(NW)) DUCT1A.1251
H3(1) = H2(1) + (H2(2) - H2(1)) * RW DUCT1A.1252
H3(2) = H2(3) + (H2(4) - H2(3)) * RW DUCT1A.1253
H3(3) = H2(5) + (H2(6) - H2(5)) * RW DUCT1A.1254
H3(4) = H2(7) + (H2(8) - H2(7)) * RW DUCT1A.1255
C----------------------------------------------------------------------- DUCT1A.1256
C INTERPOLATE HEIGHT FOR CHANGE IN DEWPOINT DEPRESSION DUCT1A.1257
C----------------------------------------------------------------------- DUCT1A.1258
RD = (DPD - VDPD(ND))/(VDPD(ND+1) - VDPD(ND)) DUCT1A.1259
H4(1) = H3(1) + (H3(2) - H3(1)) * RD DUCT1A.1260
H4(2) = H3(3) + (H3(4) - H3(3)) * RD DUCT1A.1261
C----------------------------------------------------------------------- DUCT1A.1262
C INTERPOLATE HEIGHT FOR CHANGE IN SEA TEMPERATURE DEPRESSION DUCT1A.1263
C----------------------------------------------------------------------- DUCT1A.1264
RT = (STD - VSTD(NT))/(VSTD(NT+1) - VSTD(NT)) DUCT1A.1265
DUCT_HEIGHT = H4(1) + (H4(2) - H4(1)) * RT DUCT1A.1266
C----------------------------------------------------------------------- DUCT1A.1267
CL 10. Four dimensional interpolation of maximum wavelength DUCT1A.1268
C----------------------------------------------------------------------- DUCT1A.1269
W(1) = IW(NT,ND,NW,NS) DUCT1A.1270
W(2) = IW(NT,ND,NW,NS+1) DUCT1A.1271
C DUCT1A.1272
W(3) = IW(NT,ND,NW+1,NS) DUCT1A.1273
W(4) = IW(NT,ND,NW+1,NS+1) DUCT1A.1274
C DUCT1A.1275
W(5) = IW(NT,ND+1,NW,NS) DUCT1A.1276
W(6) = IW(NT,ND+1,NW,NS+1) DUCT1A.1277
W(7) = IW(NT,ND+1,NW+1,NS) DUCT1A.1278
W(8) = IW(NT,ND+1,NW+1,NS+1) DUCT1A.1279
C DUCT1A.1280
W(9) = IW(NT+1,ND,NW,NS) DUCT1A.1281
W(10) = IW(NT+1,ND,NW,NS+1) DUCT1A.1282
W(11) = IW(NT+1,ND,NW+1,NS) DUCT1A.1283
W(12) = IW(NT+1,ND,NW+1,NS+1) DUCT1A.1284
W(13) = IW(NT+1,ND+1,NW,NS) DUCT1A.1285
W(14) = IW(NT+1,ND+1,NW,NS+1) DUCT1A.1286
W(15) = IW(NT+1,ND+1,NW+1,NS) DUCT1A.1287
W(16) = IW(NT+1,ND+1,NW+1,NS+1) DUCT1A.1288
C----------------------------------------------------------------------- DUCT1A.1289
C INTERPOLATE WAVELENGTH CHANGE IN SEA TEMPERATURE DUCT1A.1290
C----------------------------------------------------------------------- DUCT1A.1291
W2(1) = W(1) + (W(2) - W(1)) * RS DUCT1A.1292
W2(2) = W(3) + (W(4) - W(3)) * RS DUCT1A.1293
W2(3) = W(5) + (W(6) - W(5)) * RS DUCT1A.1294
W2(4) = W(7) + (W(8) - W(7)) * RS DUCT1A.1295
W2(5) = W(9) + (W(10) - W(9)) * RS DUCT1A.1296
W2(6) = W(11) + (W(12) - W(11)) * RS DUCT1A.1297
W2(7) = W(13) + (W(14) - W(13)) * RS DUCT1A.1298
W2(8) = W(15) + (W(16) - W(15)) * RS DUCT1A.1299
C----------------------------------------------------------------------- DUCT1A.1300
C INTERPOLATE WAVELENGTH FOR CHANGE IN WIND SPEED DUCT1A.1301
C----------------------------------------------------------------------- DUCT1A.1302
W3(1) = W2(1) + (W2(2) - W2(1)) * RW DUCT1A.1303
W3(2) = W2(3) + (W2(4) - W2(3)) * RW DUCT1A.1304
W3(3) = W2(5) + (W2(6) - W2(5)) * RW DUCT1A.1305
W3(4) = W2(7) + (W2(8) - W2(7)) * RW DUCT1A.1306
C----------------------------------------------------------------------- DUCT1A.1307
C INTERPOLATE WAVELENGTH FOR CHANGE IN DEWPOINT DEPRESSION DUCT1A.1308
C----------------------------------------------------------------------- DUCT1A.1309
W4(1) = W3(1) + (W3(2) - W3(1)) * RD DUCT1A.1310
W4(2) = W3(3) + (W3(4) - W3(3)) * RD DUCT1A.1311
C----------------------------------------------------------------------- DUCT1A.1312
C INTERPOLATE WAVELENGTH FOR CHANGE IN SEA TEMPERATURE DEPRESSION DUCT1A.1313
C----------------------------------------------------------------------- DUCT1A.1314
MAX_WAVELENGTH = (W4(1) + (W4(2) - W4(1)) * RT)*0.01 DUCT1A.1315
RETURN DUCT1A.1316
END DUCT1A.1317
C----------------------------------------------------------------------- DUCT1A.1318
C DUCT1A.1319
*ENDIF DUCT1A.1320