f1f1f1.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\tomawac\f1f1f1.f
00002 !
00055                         SUBROUTINE F1F1F1
00056 !                       *****************
00057 !
00058      &(F1SF,NF1,IQ_OM1)
00059 !
00060 !***********************************************************************
00061 ! TOMAWAC   V6P3                                   15/06/2011
00062 !***********************************************************************
00063 !
00064 !
00065 !
00066 !
00067 !
00068 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00069 !| F1SF           |-->|
00070 !| IQ_OM1         |-->| SETTING FOR INTEGRATION ON OMEGA1
00071 !| NF1            |-->|
00072 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00073 !
00074       IMPLICIT NONE
00075 !
00076       INTEGER LNG,LU
00077       COMMON/INFO/ LNG,LU
00078 !
00079 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00080 !
00081       INTEGER,          INTENT(IN)    :: IQ_OM1
00082       INTEGER,          INTENT(INOUT) :: NF1
00083       DOUBLE PRECISION, INTENT(INOUT) :: F1SF(*)
00084 !
00085 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00086 !
00087       INTEGER I,M
00088       DOUBLE PRECISION RAISON
00089 !
00090 !-----------------------------------------------------------------------
00091 !
00092       IF(IQ_OM1.EQ.1) THEN
00093         IF(NF1.NE.14) THEN
00094           IF(LNG.EQ.1) THEN
00095             WRITE(LU,*) 'ARRET DANS F1F1F1 : VALEUR INCORRECTE DE NF1'
00096             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'    ET NF1 = ',NF1
00097           ELSEIF(LNG.EQ.2) THEN
00098             WRITE(LU,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
00099             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'   AND NF1 = ',NF1
00100           ENDIF
00101           CALL PLANTE(1)
00102           STOP
00103         ENDIF
00104         F1SF( 1)=0.30D0
00105         F1SF( 2)=0.40D0
00106         F1SF( 3)=0.50D0
00107         F1SF( 4)=0.60D0
00108         F1SF( 5)=0.70D0
00109         F1SF( 6)=0.80D0
00110         F1SF( 7)=0.90D0
00111         F1SF( 8)=1.00D0
00112         F1SF( 9)=1.11D0
00113         F1SF(10)=1.25D0
00114         F1SF(11)=1.42D0
00115         F1SF(12)=1.67D0
00116         F1SF(13)=2.00D0
00117         F1SF(14)=2.50D0
00118         F1SF(15)=3.30D0
00119       ELSEIF(IQ_OM1.EQ.2) THEN
00120         IF (NF1.NE.26) THEN
00121           IF(LNG.EQ.1) THEN
00122             WRITE(LU,*) 'ARRET DANS F1F1F1 : VALEUR INCORRECTE DE NF1'
00123             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'    ET NF1 = ',NF1
00124             WRITE(LU,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
00125             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'   AND NF1 = ',NF1
00126           ENDIF
00127           CALL PLANTE(1)
00128           STOP
00129         ENDIF
00130         F1SF( 1)=0.32D0
00131         F1SF( 2)=0.35D0
00132         F1SF( 3)=0.39D0
00133         F1SF( 4)=0.44D0
00134         F1SF( 5)=0.50D0
00135         F1SF( 6)=0.56D0
00136         F1SF( 7)=0.63D0
00137         F1SF( 8)=0.70D0
00138         F1SF( 9)=0.78D0
00139         F1SF(10)=0.86D0
00140         F1SF(11)=0.92D0
00141         F1SF(12)=0.97D0
00142         F1SF(13)=1.00D0
00143         F1SF(14)=1.03D0
00144         F1SF(15)=1.08D0
00145         F1SF(16)=1.13D0
00146         F1SF(17)=1.20D0
00147         F1SF(18)=1.28D0
00148         F1SF(19)=1.37D0
00149         F1SF(20)=1.48D0
00150         F1SF(21)=1.50D0
00151         F1SF(22)=1.65D0
00152         F1SF(23)=1.85D0
00153         F1SF(24)=2.10D0
00154         F1SF(25)=2.40D0
00155         F1SF(26)=2.70D0
00156         F1SF(27)=3.20D0
00157       ELSEIF(IQ_OM1.EQ.3) THEN
00158         IF(NF1.NE.11) THEN
00159           IF(LNG.EQ.1) THEN
00160             WRITE(LU,*) 'ARRET DANS F1F1F1 : VALEUR INCORRECTE DE NF1'
00161             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'    ET NF1 = ',NF1
00162           ELSEIF(LNG.EQ.2) THEN
00163             WRITE(LU,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
00164             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'   AND NF1 = ',NF1
00165           ENDIF
00166           CALL PLANTE(1)
00167           STOP
00168         ENDIF
00169         F1SF( 1)=0.30D0
00170         F1SF( 2)=0.48D0
00171         F1SF( 3)=0.64D0
00172         F1SF( 4)=0.78D0
00173         F1SF( 5)=0.90D0
00174         F1SF( 6)=1.00D0
00175         F1SF( 7)=1.12D0
00176         F1SF( 8)=1.28D0
00177         F1SF( 9)=1.50D0
00178         F1SF(10)=1.80D0
00179         F1SF(11)=2.40D0
00180         F1SF(12)=3.40D0
00181       ELSEIF(IQ_OM1.EQ.4) THEN
00182         IF(NF1.NE.40) THEN
00183           IF(LNG.EQ.1) THEN
00184             WRITE(LU,*) 'ARRET DANS F1F1F1 : VALEUR INCORRECTE DE NF1'
00185             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'    ET NF1 = ',NF1
00186           ELSEIF(LNG.EQ.2) THEN
00187             WRITE(LU,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
00188             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'   AND NF1 = ',NF1
00189           ENDIF
00190           CALL PLANTE(1)
00191           STOP
00192         ENDIF
00193         NF1=20
00194         M=10
00195         RAISON=9.D0**(1.D0/DBLE(NF1))
00196         F1SF(M+1)=1.0D0/3.0D0
00197         NF1=2*M+NF1
00198         DO I=M+2,NF1+1
00199           F1SF(I)=F1SF(I-1)*RAISON
00200         ENDDO
00201         DO I=M,1,-1
00202           F1SF(I)=F1SF(I+1)/RAISON
00203         ENDDO
00204       ELSEIF(IQ_OM1.EQ.5) THEN
00205         RAISON=9.D0**(1.D0/DBLE(NF1))
00206         F1SF(1)=1.D0/3.D0
00207         DO I=2,NF1+1
00208           F1SF(I)=F1SF(I-1)*RAISON
00209         ENDDO
00210       ELSEIF(IQ_OM1.EQ.6) THEN
00211         RAISON=(3.D0-1.D0/3.D0)/DBLE(NF1)
00212         F1SF(1)=1.D0/3.D0
00213         DO I=2,NF1+1
00214           F1SF(I)=F1SF(I-1)+RAISON
00215         ENDDO
00216       ELSEIF(IQ_OM1.EQ.7) THEN
00217         IF(NF1.NE.20) THEN
00218           IF(LNG.EQ.1) THEN
00219             WRITE(LU,*) 'ARRET DANS F1F1F1 : VALEUR INCORRECTE DE NF1'
00220             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'    ET NF1 = ',NF1
00221           ELSEIF(LNG.EQ.2) THEN
00222             WRITE(LU,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
00223             WRITE(LU,*) 'IQ_OM1 = ',IQ_OM1,'   AND NF1 = ',NF1
00224           ENDIF
00225           CALL PLANTE(1)
00226           STOP
00227         ENDIF
00228         F1SF( 1)=1.D0/3.D0
00229         F1SF( 2)=0.40D0
00230         F1SF( 3)=0.46D0
00231         F1SF( 4)=0.52D0
00232         F1SF( 5)=0.60D0
00233         F1SF( 6)=0.70D0
00234         F1SF( 7)=0.79D0
00235         F1SF( 8)=0.86D0
00236         F1SF( 9)=0.92D0
00237         F1SF(10)=0.97D0
00238         F1SF(11)=1.00D0
00239         F1SF(12)=1.04D0
00240         F1SF(13)=1.10D0
00241         F1SF(14)=1.18D0
00242         F1SF(15)=1.28D0
00243         F1SF(16)=1.42D0
00244         F1SF(17)=1.60D0
00245         F1SF(18)=1.84D0
00246         F1SF(19)=2.14D0
00247         F1SF(20)=2.52D0
00248         F1SF(21)=3.00D0
00249       ENDIF
00250 !
00251 !-----------------------------------------------------------------------
00252 !
00253       RETURN
00254       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0