*IF DEF,W02_1A                                                             WVV0F401.7      
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.15660  
C                                                                          GTS2F400.15661  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.15662  
C restrictions as set forth in the contract.                               GTS2F400.15663  
C                                                                          GTS2F400.15664  
C                Meteorological Office                                     GTS2F400.15665  
C                London Road                                               GTS2F400.15666  
C                BRACKNELL                                                 GTS2F400.15667  
C                Berkshire UK                                              GTS2F400.15668  
C                RG12 2SZ                                                  GTS2F400.15669  
C                                                                          GTS2F400.15670  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.15671  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.15672  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.15673  
C Modelling at the above address.                                          GTS2F400.15674  
C ******************************COPYRIGHT******************************    GTS2F400.15675  
C                                                                          GTS2F400.15676  
                                                                           SINPUT.3      

      SUBROUTINE SINPUT (F, FL, IJS, IJL, IG, ishallo,                      1SINPUT.4      
*CALL ARGWVAL                                                              SINPUT.5      
*CALL ARGWVCP                                                              SINPUT.6      
*CALL ARGWVFD                                                              SINPUT.7      
*CALL ARGWVMN                                                              SINPUT.8      
*CALL ARGWVSH                                                              SINPUT.9      
*CALL ARGWVSR                                                              SINPUT.10     
*CALL ARGWVWD                                                              SINPUT.11     
     & icode)                                                              SINPUT.12     
                                                                           SINPUT.13     
*CALL PARWVSH                                                              SINPUT.14     
*CALL PARCONS                                                              SINPUT.15     
*CALL PARWVSTR                                                             SINPUT.16     
                                                                           SINPUT.17     
*CALL TYPWVCP                                                              SINPUT.18     
*CALL TYPWVFD                                                              SINPUT.19     
*CALL TYPWVMN                                                              SINPUT.20     
*CALL TYPWVSH                                                              SINPUT.21     
*CALL TYPWVSR                                                              SINPUT.22     
*CALL TYPWVWD                                                              SINPUT.23     
*CALL TYPWVAL                                                              SINPUT.24     
                                                                           SINPUT.25     
C ----------------------------------------------------------------------   SINPUT.26     
C                                                                          SINPUT.27     
C**** *SINPUT* - COMPUTATION OF INPUT SOURCE FUNCTION.                     SINPUT.28     
C                                                                          SINPUT.29     
C     P.A.E.M. JANSSEN    KNMI      AUGUST    1990                         SINPUT.30     
C                                                                          SINPUT.31     
C     OPTIMIZED BY : H. GUENTHER                                           SINPUT.32     
C                                                                          SINPUT.33     
C*    PURPOSE.                                                             SINPUT.34     
C     ---------                                                            SINPUT.35     
C                                                                          SINPUT.36     
C       COMPUTE INPUT SOURCE FUNCTION AND STORE ADDITIVELY INTO NET        SINPUT.37     
C       SOURCE FUNCTION ARRAY, ALSO COMPUTE FUNCTIONAL DERIVATIVE OF       SINPUT.38     
C       INPUT SOURCE FUNCTION.                                             SINPUT.39     
C                                                                          SINPUT.40     
C**   INTERFACE.                                                           SINPUT.41     
C     ----------                                                           SINPUT.42     
C                                                                          SINPUT.43     
C       *CALL* *SINPUT (F, FL, IJS, IJL, IG)*                              SINPUT.44     
C          *F*   - SPECTRUM.                                               SINPUT.45     
C          *FL*  - DIAGONAL MATRIX OF FUNCTIONAL DERIVATIVE.               SINPUT.46     
C          *IJS* - INDEX OF FIRST GRIDPOINT.                               SINPUT.47     
C          *IJL* - INDEX OF LAST GRIDPOINT.                                SINPUT.48     
C          *IG*  - BLOCK NUMBER.                                           SINPUT.49     
C                                                                          SINPUT.50     
C     METHOD.                                                              SINPUT.51     
C     -------                                                              SINPUT.52     
C                                                                          SINPUT.53     
C       SEE REFERENCE.                                                     SINPUT.54     
C                                                                          SINPUT.55     
C     EXTERNALS.                                                           SINPUT.56     
C     ----------                                                           SINPUT.57     
C                                                                          SINPUT.58     
C       NONE.                                                              SINPUT.59     
C                                                                          SINPUT.60     
C     REFERENCE.                                                           SINPUT.61     
C     ----------                                                           SINPUT.62     
C                                                                          SINPUT.63     
C       P. JANSSEN, J.P.O., 1989.                                          SINPUT.64     
C       P. JANSSEN, J.P.O., 1991                                           SINPUT.65     
C                                                                          SINPUT.66     
C ----------------------------------------------------------------------   SINPUT.67     
Ccc what to do about this ??                                               SINPUT.68     
CDIR$ VFUNCTION EXPHF                                                      SINPUT.69     
CDIR$ VFUNCTION ALOGHF                                                     SINPUT.70     
C                                                                          SINPUT.71     
C ----------------------------------------------------------------------   SINPUT.72     
C                                                                          SINPUT.73     
      DIMENSION F(0:NIBLO,NANG,NFRE), FL(0:NIBLO,NANG,NFRE)                SINPUT.74     
C                                                                          SINPUT.75     
C ----------------------------------------------------------------------   SINPUT.76     
C                                                                          SINPUT.77     
      DIMENSION TEMP(NIBLO,NANG), TEMP1(NIBLO,NANG),                       SINPUT.78     
     1          UCO(NIBLO), ZCO(NIBLO), UCN(NIBLO), ZCN(NIBLO),            SINPUT.79     
     2          UFAC1(NIBLO), UFAC2(NIBLO), CM(NIBLO)                      SINPUT.80     
C                                                                          SINPUT.81     
C ----------------------------------------------------------------------   SINPUT.82     
C                                                                          SINPUT.83     
C*    1. PRECALCULATED ANGULAR DEPENDENCE.                                 SINPUT.84     
C        ---------------------------------                                 SINPUT.85     
C                                                                          SINPUT.86     
 1000 CONTINUE                                                             SINPUT.87     
      DO 1001 K=1,NANG                                                     SINPUT.88     
         TKD=TH(K)                                                         SINPUT.89     
         DO 1002 IJ=IJS,IJL                                                SINPUT.90     
            TEMP (IJ,K) = COS(TKD-THWOLD(IJ,IG))                           SINPUT.91     
            TEMP1(IJ,K) = COS(TKD-THWNEW(IJ,ig))                           SINPUT.92     
 1002    CONTINUE                                                          SINPUT.93     
 1001 CONTINUE                                                             SINPUT.94     
C                                                                          SINPUT.95     
C ----------------------------------------------------------------------   SINPUT.96     
C                                                                          SINPUT.97     
C*    2. LOOP OVER FREQUENCIES.                                            SINPUT.98     
C        ----------------------                                            SINPUT.99     
C                                                                          SINPUT.100    
      CONST1  = XEPS*BETAMAX/XKAPPA**2                                     SINPUT.101    
                                                                           SINPUT.102    
      DO 2001 M=1,NFRE                                                     SINPUT.103    
         FAC = ZPI*FR(M)                                                   SINPUT.104    
         CONST=FAC*CONST1                                                  SINPUT.105    
C                                                                          SINPUT.106    
C*      INVERSE OF PHASE VELOCITIES.                                       SINPUT.107    
C       ----------------------------                                       SINPUT.108    
C                                                                          SINPUT.109    
         IF (ISHALLO.EQ.1) THEN                                            SINPUT.110    
            DO 2002 IJ=IJS,IJL                                             SINPUT.111    
               CM(IJ) = FAC/G                                              SINPUT.112    
 2002       CONTINUE                                                       SINPUT.113    
         ELSE                                                              SINPUT.114    
            DO 2003 IJ=IJS,IJL                                             SINPUT.115    
               CM(IJ) = TFAK(INDEP(IJ),M)/FAC                              SINPUT.116    
 2003       CONTINUE                                                       SINPUT.117    
         END IF                                                            SINPUT.118    
C                                                                          SINPUT.119    
C*      PRECALCULATE FREQUENCY DEPENDENCE.                                 SINPUT.120    
C       ----------------------------------                                 SINPUT.121    
C                                                                          SINPUT.122    
         DO 2004 IJ=IJS,IJL                                                SINPUT.123    
            UCO(IJ) = USOLD(IJ,IG)*CM(IJ) + ZALP                           SINPUT.124    
            ZCO(IJ) = ALOG(G*Z0OLD(IJ,IG)*CM(IJ)**2)                       SINPUT.125    
            UCN(IJ) = USNEW(IJ,ig)*CM(IJ) + ZALP                           SINPUT.126    
            ZCN(IJ) = ALOG(G*Z0NEW(IJ,ig)*CM(IJ)**2)                       SINPUT.127    
 2004    CONTINUE                                                          SINPUT.128    
C                                                                          SINPUT.129    
C*    2.1 LOOP OVER DIRECTIONS.                                            SINPUT.130    
C         ---------------------                                            SINPUT.131    
C                                                                          SINPUT.132    
         DO 2101 K=1,NANG                                                  SINPUT.133    
            DO 2102 IJ=IJS,IJL                                             SINPUT.134    
               UFAC1(IJ) = 0.                                              SINPUT.135    
               UFAC2(IJ) = 0.                                              SINPUT.136    
 2102       CONTINUE                                                       SINPUT.137    
            DO 2103 IJ=IJS,IJL                                             SINPUT.138    
               IF (TEMP(IJ,K).GT.0.01) THEN                                SINPUT.139    
                  X    = TEMP(IJ,K)*UCO(IJ)                                SINPUT.140    
                  ZARG = XKAPPA/X                                          SINPUT.141    
                  ZLOG = ZCO(IJ) + ZARG                                    SINPUT.142    
                  IF (ZLOG.LT.0.) THEN                                     SINPUT.143    
                     UFAC1(IJ) = CONST*EXP(ZLOG)*ZLOG**4*X**2              SINPUT.144    
                  ENDIF                                                    SINPUT.145    
               ENDIF                                                       SINPUT.146    
 2103       CONTINUE                                                       SINPUT.147    
C                                                                          SINPUT.148    
            DO 2104 IJ=IJS,IJL                                             SINPUT.149    
               IF (TEMP1(IJ,K).GT.0.01) THEN                               SINPUT.150    
                  X    = TEMP1(IJ,K)*UCN(IJ)                               SINPUT.151    
                  ZARG = XKAPPA/X                                          SINPUT.152    
                  ZLOG = ZCN(IJ) + ZARG                                    SINPUT.153    
                  IF (ZLOG.LT.0.) THEN                                     SINPUT.154    
                     UFAC2(IJ) = CONST*EXP(ZLOG)*ZLOG**4*X**2              SINPUT.155    
                  ENDIF                                                    SINPUT.156    
               ENDIF                                                       SINPUT.157    
 2104       CONTINUE                                                       SINPUT.158    
C                                                                          SINPUT.159    
C*    2.2 ADDING INPUT SOURCE TERM TO NET SOURCE FUNCTION.                 SINPUT.160    
C         ------------------------------------------------                 SINPUT.161    
C                                                                          SINPUT.162    
            DO 2201 IJ=IJS,IJL                                             SINPUT.163    
               SL(IJ,K,M) = 0.5*(UFAC1(IJ)+UFAC2(IJ))*F(IJ,K,M)            SINPUT.164    
               FL(IJ,K,M) = UFAC2(IJ)                                      SINPUT.165    
 2201       CONTINUE                                                       SINPUT.166    
 2101    CONTINUE                                                          SINPUT.167    
 2001 CONTINUE                                                             SINPUT.168    
                                                                           SINPUT.169    
      RETURN                                                               SINPUT.170    
      END                                                                  SINPUT.171    
*ENDIF                                                                     SINPUT.172