*IF DEF,A06_3A,OR,DEF,A06_3B ADR2F405.1 C ******************************COPYRIGHT****************************** GTS2F400.3763 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.3764 C GTS2F400.3765 C Use, duplication or disclosure of this code is subject to the GTS2F400.3766 C restrictions as set forth in the contract. GTS2F400.3767 C GTS2F400.3768 C Meteorological Office GTS2F400.3769 C London Road GTS2F400.3770 C BRACKNELL GTS2F400.3771 C Berkshire UK GTS2F400.3772 C RG12 2SZ GTS2F400.3773 C GTS2F400.3774 C If no contract has been raised with this copy of the code, the use, GTS2F400.3775 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.3776 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.3777 C Modelling at the above address. GTS2F400.3778 C ******************************COPYRIGHT****************************** GTS2F400.3779 C GTS2F400.3780 !+ Interfaces GWAV_CTL to version 3A of gravity wave drag scheme. GWVICT3A.3 ! GWVICT3A.4SUBROUTINE GWAV_INTCTL 1,2GWVICT3A.5 1 (PSTAR,PEXNER,THETA,Q,U,V,P_FIELD,U_FIELD, GWVICT3A.6 2 ROWS_P,ROW_LENGTH,START_LEVEL,LEVELS,Q_LEVELS, GWVICT3A.7 *CALL ARGFLDPT
APBEF401.23 3 AK,BK,AKH,BKH,DELTA_AK,DELTA_BK,SD_OROG_LAND, GWVICT3A.8 4 OROG_GRAD_XX_LAND,OROG_GRAD_XY_LAND,OROG_GRAD_YY_LAND, GWVICT3A.9 5 LAND_INDEX,LAND_POINTS,TIMESTEP,KAY,KAY_LEE, ASW1F403.23 6 STRESS_UD,LEN_STRESS_UD,STRESS_UD_ON,U_LIST1,POINTS_STRESS_UD, GWVICT3A.11 7 STRESS_VD,LEN_STRESS_VD,STRESS_VD_ON,V_LIST1,POINTS_STRESS_VD, GWVICT3A.12 8 DU_DT_SATN,LEN_DU_DT_SATN,DU_DT_SATN_ON, GWVICT3A.13 9 U_LIST2,POINTS_DU_DT_SATN, GWVICT3A.14 & DV_DT_SATN,LEN_DV_DT_SATN,DV_DT_SATN_ON, GWVICT3A.15 & V_LIST2,POINTS_DV_DT_SATN, GWVICT3A.16 & DU_DT_JUMP,LEN_DU_DT_JUMP,DU_DT_JUMP_ON, GWVICT3A.17 & U_LIST3,POINTS_DU_DT_JUMP, GWVICT3A.18 & DV_DT_JUMP,LEN_DV_DT_JUMP,DV_DT_JUMP_ON, GWVICT3A.19 & V_LIST3,POINTS_DV_DT_JUMP, GWVICT3A.20 & DU_DT_LEE,LEN_DU_DT_LEE,DU_DT_LEE_ON,U_LIST4,POINTS_DU_DT_LEE, GWVICT3A.21 & DV_DT_LEE,LEN_DV_DT_LEE,DV_DT_LEE_ON,V_LIST4,POINTS_DV_DT_LEE, GWVICT3A.22 & TRANS_D,LEN_TRANS_D,TRANS_D_ON,POINTS_TRANS_D,IRET, GWVICT3A.23 & LFROUDE,LGWLINP) GWVICT3A.24 GWVICT3A.25 IMPLICIT NONE GWVICT3A.26 ! GWVICT3A.27 ! Description: GWVICT3A.28 ! Is called with all possible arguments for all versions of gravity GWVICT3A.29 ! wave drag scheme, and according to *IF DEF (A06_3A in this case) GWVICT3A.30 ! calls corresponding actual G_WAVE routine with only those GWVICT3A.31 ! arguments it requires. GWVICT3A.32 ! GWVICT3A.33 ! Current Code Owner: R.T.H.Barnes. GWVICT3A.34 ! GWVICT3A.35 ! History: GWVICT3A.36 ! Version Date Comment GWVICT3A.37 ! ------- ---- ------- GWVICT3A.38 ! 3.4 22/11/94 Original code. R.T.H.Barnes. GWVICT3A.39 !LL 4.3 13/02/97 Stop main code being called if no land points GPB3F403.95 !LL P.Burton GPB3F403.96 ! 4.3 7/03/97 KAY_LEE passed in from namelist. S.Webster ASW1F403.24 ! GWVICT3A.40 ! Code Description: GWVICT3A.41 ! Language: FORTRAN 77 + common extensions. GWVICT3A.42 ! This code is written to UMDP3 v6 programming standards. GWVICT3A.43 ! System component covered: GWVICT3A.44 ! System Task: GWVICT3A.45 ! GWVICT3A.46 ! Global variables (*CALLed COMDECKs etc...): GWVICT3A.47 GWVICT3A.48 ! Subroutine arguments GWVICT3A.49 GWVICT3A.50 INTEGER GWVICT3A.51 & P_FIELD !IN 1ST DIMENSION OF FIELD OF PSTAR GWVICT3A.52 &, U_FIELD !IN 1ST DIMENSION OF FIELD OF U,V GWVICT3A.53 &, ROWS_P !IN NUMBER OF ROWS of P grid GWVICT3A.54 &, ROW_LENGTH !IN NUMBER OF POINTS PER ROW GWVICT3A.55 &, START_LEVEL !IN START OF WAVE-BREAKING TEST GWVICT3A.56 &, LEVELS !IN NUMBER OF MODEL LEVELS GWVICT3A.57 &, Q_LEVELS !IN NUMBER OF WET LEVELS GWVICT3A.58 &, LAND_POINTS !IN NUMBER OF LAND POINTS GWVICT3A.59 &, LAND_INDEX((ROWS_P)*ROW_LENGTH) ! INDEX FOR LAND POINTS GWVICT3A.60 &, IRET ! RETURN CODE : IRET=0 NORMAL EXIT GWVICT3A.61 ! ! RETURN CODE : IRET=1 ????? GWVICT3A.62 &, LEN_STRESS_UD !IN ) Dimension of diagnostic arrays GWVICT3A.63 &, LEN_STRESS_VD !IN ) for GW stress - u and v GWVICT3A.64 &, POINTS_STRESS_UD !IN ) No of land points in diagnostic GWVICT3A.65 &, POINTS_STRESS_VD !IN ) arrays for GW stress - u and v GWVICT3A.66 &, LEN_DU_DT_SATN !IN ) Dimension of diagnostic arrays GWVICT3A.67 &, LEN_DV_DT_SATN !IN ) for GW satn - du and dv GWVICT3A.68 &, POINTS_DU_DT_SATN !IN ) No of land points in diagnostic GWVICT3A.69 &, POINTS_DV_DT_SATN !IN ) arrays for GW satn - du and dv GWVICT3A.70 &, LEN_DU_DT_JUMP !IN ) Dimension of diagnostic arrays GWVICT3A.71 &, LEN_DV_DT_JUMP !IN ) for GW satn - du and dv GWVICT3A.72 &, POINTS_DU_DT_JUMP !IN ) No of land points in diagnostic GWVICT3A.73 &, POINTS_DV_DT_JUMP !IN ) arrays for GW satn - du and dv GWVICT3A.74 &, LEN_DU_DT_LEE !IN ) Dimension of diagnostic arrays GWVICT3A.75 &, LEN_DV_DT_LEE !IN ) for GW lee - du and dv GWVICT3A.76 &, POINTS_DU_DT_LEE !IN ) No of land points in diagnostic GWVICT3A.77 &, POINTS_DV_DT_LEE !IN ) arrays for GW lee - du and dv GWVICT3A.78 &, LEN_TRANS_D !IN Dimension of diag for trans. coeff. GWVICT3A.79 &, POINTS_TRANS_D !IN No. of land points for trans. coeff. GWVICT3A.80 C GWVICT3A.81 C GWVICT3A.82 ! All TYPFLDPT variables are Intent IN APBEF401.24 *CALL TYPFLDPT
APBEF401.25 GWVICT3A.83 REAL GWVICT3A.84 & PSTAR(P_FIELD) !IN PRIMARY MODEL ARRAY FOR PSTAR FIELD GWVICT3A.85 &,PEXNER(P_FIELD,LEVELS+1) !IN ARRAY FOR EXNER PRESSURE FIELD GWVICT3A.86 &,THETA(P_FIELD,LEVELS) !IN PRIMARY MODEL ARRAY FOR THETA FIELD GWVICT3A.87 &,Q(P_FIELD,Q_LEVELS) !IN SPECIFIC HUMIDITY AT FULL LEVELS GWVICT3A.88 &,U(U_FIELD,LEVELS) !INOUT PRIMARY MODEL ARRAY FOR U FIELD GWVICT3A.89 &,V(U_FIELD,LEVELS) !INOUT PRIMARY MODEL ARRAY FOR V FIELD GWVICT3A.90 C AK,BK DEFINE HYBRID VERTICAL COORDINATES P=A+BP*, GWVICT3A.91 C DELTA_AK,DELTA_BK DEFINE LAYER PRESSURE THICKNESS PD=AD+BDP*, GWVICT3A.92 GWVICT3A.93 REAL GWVICT3A.94 & DELTA_AK(LEVELS) !IN LAYER THICKNESS GWVICT3A.95 &,DELTA_BK(LEVELS) !IN LAYER THICKNESS GWVICT3A.96 &,AK (LEVELS) !IN VALUE AT LAYER CENTRE GWVICT3A.97 &,BK (LEVELS) !IN VALUE AT LAYER CENTRE GWVICT3A.98 &,AKH(LEVELS+1) !IN VALUE AT LAYER BOUNDARY GWVICT3A.99 &,BKH(LEVELS+1) !IN VALUE AT LAYER BOUNDARY GWVICT3A.100 &,SD_OROG_LAND(LAND_POINTS) !IN STANDARD DEVIATION OF OROGRAPHY GWVICT3A.101 &,OROG_GRAD_XX_LAND(LAND_POINTS) GWVICT3A.102 ! !IN DH/DX SQUARED GRADIENT OROGRAPHY GWVICT3A.103 &,OROG_GRAD_XY_LAND(LAND_POINTS) GWVICT3A.104 ! !IN (DH/DX)(DH/DY) GRADIENT OROGRAPHY GWVICT3A.105 &,OROG_GRAD_YY_LAND(LAND_POINTS) GWVICT3A.106 ! !IN DH/DY SQUARED GRADIENT OROGRAPHY GWVICT3A.107 &,TIMESTEP !IN TIMESTEP GWVICT3A.108 &,KAY !IN surface stress constant ( m-1) GWVICT3A.109 &,KAY_LEE !IN TRAPPED LEE WAVE CONSTANT ASW1F403.25 & ASW1F403.26 &,STRESS_UD(LEN_STRESS_UD,*) !U STRESS DIAGNOSTIC GWVICT3A.111 &,STRESS_VD(LEN_STRESS_VD,*) !V STRESS DIAGNOSTIC GWVICT3A.112 &,DU_DT_SATN(LEN_DU_DT_SATN,*) !U ACCELN DIAGNOSTIC (SATURATION) GWVICT3A.113 &,DV_DT_SATN(LEN_DV_DT_SATN,*) !V ACCELN DIAGNOSTIC (SATURATION) GWVICT3A.114 &,DU_DT_JUMP(LEN_DU_DT_JUMP,*) !U ACCELN DIAG (HYDRAULIC JUMP) GWVICT3A.115 &,DV_DT_JUMP(LEN_DV_DT_JUMP,*) !V ACCELN DIAG (HYDRAULIC JUMP) GWVICT3A.116 &,DU_DT_LEE(LEN_DU_DT_LEE,*) !U ACCELN DIAG (TRAPPED LEE WAVE) GWVICT3A.117 &,DV_DT_LEE(LEN_DV_DT_LEE,*) !V ACCELN DIAG (TRAPPED LEE WAVE) GWVICT3A.118 &,TRANS_D(LEN_TRANS_D) !TRANSMITTION COEFF DIAGN GWVICT3A.119 GWVICT3A.120 C WARNING: Storage will only be assigned by the calling routine for GWVICT3A.121 C for the number of levels required. GWVICT3A.122 GWVICT3A.123 LOGICAL GWVICT3A.124 & STRESS_UD_ON !U stress diagnostic switch GWVICT3A.125 &,STRESS_VD_ON !V stress diagnostic switch GWVICT3A.126 &,U_LIST1(LEVELS+1) ! Lists of levels for which stresses GWVICT3A.127 &,V_LIST1(LEVELS+1) ! required. GWVICT3A.128 &,DU_DT_SATN_ON !U accel (saturation) diagnostic switch GWVICT3A.129 &,DV_DT_SATN_ON !V accel (saturation) diagnostic switch GWVICT3A.130 &,U_LIST2(LEVELS) ! Lists of levels for which accelerations GWVICT3A.131 &,V_LIST2(LEVELS) ! required. GWVICT3A.132 &,DU_DT_JUMP_ON !U accel (hydr jump) diagnostic switch GWVICT3A.133 &,DV_DT_JUMP_ON !V accel (hydr jump) diagnostic switch GWVICT3A.134 &,U_LIST3(LEVELS) ! Lists of levels for which accelerations GWVICT3A.135 &,V_LIST3(LEVELS) ! required. GWVICT3A.136 &,DU_DT_LEE_ON !U accel (lee wave) diagnostic switch GWVICT3A.137 &,DV_DT_LEE_ON !V accel (lee wave) diagnostic switch GWVICT3A.138 &,U_LIST4(LEVELS) ! Lists of levels for which accelerations GWVICT3A.139 &,V_LIST4(LEVELS) ! required. GWVICT3A.140 &,TRANS_D_ON !Transmittion coefficient diag switch GWVICT3A.141 &,LFROUDE !Switch for Froude number limiting GWVICT3A.142 &,LGWLINP !Switch for linear stress profile GWVICT3A.143 GWVICT3A.144 ! Local dynamic arrays: GWVICT3A.145 GWVICT3A.146 ! Function & Subroutine calls: GWVICT3A.147 EXTERNAL G_WAVE GWVICT3A.148 GWVICT3A.149 ! Local parameters: GWVICT3A.150 GWVICT3A.151 ! Local scalars: GWVICT3A.152 GWVICT3A.153 C------------------------------------------------------------------- GWVICT3A.154 CL 1. Call Gravity Wave Drag Scheme version 3A. GWVICT3A.155 C------------------------------------------------------------------- GWVICT3A.156 GWVICT3A.157 IF (LAND_POINTS .NE. 0) THEN GPB3F403.97 CALL G_WAVE
GWVICT3A.158 1 (PSTAR,PEXNER,THETA,Q,U,V,P_FIELD,U_FIELD, GWVICT3A.159 2 ROWS_P,ROW_LENGTH,START_LEVEL,LEVELS,Q_LEVELS, GWVICT3A.160 *CALL ARGFLDPT
APBEF401.26 3 AK,BK,AKH,BKH,DELTA_AK,DELTA_BK,SD_OROG_LAND, GWVICT3A.161 4 OROG_GRAD_XX_LAND,OROG_GRAD_XY_LAND,OROG_GRAD_YY_LAND, GWVICT3A.162 5 LAND_INDEX,LAND_POINTS,TIMESTEP,KAY,KAY_LEE, ASW1F403.27 6 STRESS_UD,LEN_STRESS_UD,STRESS_UD_ON,U_LIST1,POINTS_STRESS_UD, GWVICT3A.164 7 STRESS_VD,LEN_STRESS_VD,STRESS_VD_ON,V_LIST1,POINTS_STRESS_VD, GWVICT3A.165 8 DU_DT_SATN,LEN_DU_DT_SATN,DU_DT_SATN_ON, GWVICT3A.166 9 U_LIST2,POINTS_DU_DT_SATN, GWVICT3A.167 & DV_DT_SATN,LEN_DV_DT_SATN,DV_DT_SATN_ON, GWVICT3A.168 & V_LIST2,POINTS_DV_DT_SATN, GWVICT3A.169 & DU_DT_JUMP,LEN_DU_DT_JUMP,DU_DT_JUMP_ON, GWVICT3A.170 & U_LIST3,POINTS_DU_DT_JUMP, GWVICT3A.171 & DV_DT_JUMP,LEN_DV_DT_JUMP,DV_DT_JUMP_ON, GWVICT3A.172 & V_LIST3,POINTS_DV_DT_JUMP, GWVICT3A.173 & DU_DT_LEE,LEN_DU_DT_LEE,DU_DT_LEE_ON,U_LIST4,POINTS_DU_DT_LEE, GWVICT3A.174 & DV_DT_LEE,LEN_DV_DT_LEE,DV_DT_LEE_ON,V_LIST4,POINTS_DV_DT_LEE, GWVICT3A.175 & TRANS_D,LEN_TRANS_D,TRANS_D_ON,POINTS_TRANS_D,IRET) GWVICT3A.176 ENDIF ! if land_points .ne. 0 GPB3F403.98 GWVICT3A.177 RETURN GWVICT3A.178 END GWVICT3A.179 GWVICT3A.180 *ENDIF GWVICT3A.181