⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disp.c

📁 su 的源代码库
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       *//*                                                              *//*  Function displacements()                                    *//*                                                              *//*  Computing offset-dependent quantities to be used in the     *//*  integration over slowness                                   *//*                                                              *//*  Input parameters:                                           *//*  v1, v2.................Potential vectors                    *//*                         global variable                      *//*  iU.....................Current slowness                     *//*                                                              *//*  Output parameters:                                          *//*  aux11..................|                                    *//*  aux12..................|                                    *//*  aux21..................|                                    *//*  aux22..................|                                    *//*  aux11Old...............|Auxiliary quantities                *//*  aux12Old...............|                                    *//*  aux21Old...............|                                    *//*  aux22Old...............|                                    *//*  aux11Old...............|                                    *//*                                              Wences Gouveia  *//*                                              September 1995  */#include "posteriori.h"void displacements(int iU){   /* declaration of variables */   int iR;                 /* counter */   float arg;              /* argument of the Bessel function */      /* loop over offsets for computing the displacements */   for (iR = 0; iR < nR; iR++)   {      /* Bessel functions */      arg = sqrt((uC.r * wC.r - uC.i * wC.i) * 		 (uC.r * wC.r - uC.i * wC.i) + 		 (wC.i * uC.r + uC.i * wC.r) * 		 (wC.i * uC.r + uC.i * wC.r)) * ABS(recArray[iR]);      Bessels(arg);            /* r component */      if (RADIAL)      {	 aux1.r = -J11 * taper[iU] * v1[0][0].r;	 aux1.i = -J11 * taper[iU] * v1[0][0].i;	 	 aux11[0][iR].r += aux1.r + aux11Old[0][iR].r;	 aux11[0][iR].i += aux1.i + aux11Old[0][iR].i;	 aux11Old[0][iR] = aux1;	 	 aux1.r = J00 * taper[iU] * v2[0][0].r;	 aux1.i = J00 * taper[iU] * v2[0][0].i;	 	 aux21[0][iR].r += aux1.r + aux21Old[0][iR].r;	 aux21[0][iR].i += aux1.i + aux21Old[0][iR].i;	 aux21Old[0][iR] = aux1;      }            /* z component */      if (VERTICAL)      {	 aux1.r = -v1[0][1].i;	 aux1.i = v1[0][1].r;	 	 aux1.r = J00 * taper[iU] * aux1.r;	 aux1.i = J00 * taper[iU] * aux1.i;	 	 aux12[0][iR].r += aux1.r + aux12Old[0][iR].r;	 aux12[0][iR].i += aux1.i + aux12Old[0][iR].i;	 aux12Old[0][iR] = aux1;		 	 aux1.r = -v2[0][1].i;	 aux1.i =  v2[0][1].r;	 	 aux1.r = J11 * taper[iU] * aux1.r;	 aux1.i = J11 * taper[iU] * aux1.i;	 	 aux22[0][iR].r += aux1.r + aux22Old[0][iR].r;	 aux22[0][iR].i += aux1.i + aux22Old[0][iR].i;	 aux22Old[0][iR] = aux1;      }   }}/*                                                              *//*  Function displacementsFrechet()                             *//*                                                              *//*  Computing offset-dependent quantities to be used in the     *//*  integration over slowness for the Frechet derivatives       *//*                                                              *//*  Input parameters:                                           *//*  v1, v2.................Potential vectors                    *//*  iU.....................Current slowness                     *//*                                                              *//*  Output parameters:                                          *//*  aux11..................|                                    *//*  aux12..................|                                    *//*  aux21..................|                                    *//*  aux22..................|                                    *//*  aux11Old...............|Auxiliary quantities for each of    *//*  aux12Old...............|the Frechet derivatives             *//*  aux21Old...............|                                    *//*  aux22Old...............|                                    *//*  aux11Old...............|                                    *//*                                              Wences Gouveia  *//*                                              September 1995  */void displacementsFrechet(int iU){   /* declaration of variables */   int iR, iDer;           /* counters */   float arg;              /* argument of the Bessel function */   for (iR = 0; iR < nR; iR++)   {      /* Bessel functions */      arg = sqrt((uC.r * wC.r - uC.i * wC.i) * 		 (uC.r * wC.r - uC.i * wC.i) + 		 (wC.i * uC.r + uC.i * wC.r) * 		 (wC.i * uC.r + uC.i * wC.r)) * ABS(recArray[iR]);      Bessels(arg);            /* loop over "active" layers */      for (iDer = 0; iDer < numberPar * limRange; iDer++)      {	 /* r component */	 if (RADIAL)	 {	    aux1.r = -J11 * taper[iU] * v1[iDer + 1][0].r;	    aux1.i = -J11 * taper[iU] * v1[iDer + 1][0].i;	    	    aux11[iDer][iR].r += aux1.r + aux11Old[iDer][iR].r;	    aux11[iDer][iR].i += aux1.i + aux11Old[iDer][iR].i;	    aux11Old[iDer][iR] = aux1;	    	    aux1.r = J00 * taper[iU] * v2[iDer + 1][0].r;	    aux1.i = J00 * taper[iU] * v2[iDer + 1][0].i;	    	    aux21[iDer][iR].r += aux1.r + aux21Old[iDer][iR].r;	    aux21[iDer][iR].i += aux1.i + aux21Old[iDer][iR].i;	    aux21Old[iDer][iR] = aux1;	 }	 	 /* z component */	 if (VERTICAL)	 {	    aux1.r = -v1[iDer + 1][1].i;	    aux1.i = v1[iDer + 1][1].r;	    	    aux1.r = J00 * taper[iU] * aux1.r;	    aux1.i = J00 * taper[iU] * aux1.i;	    	    aux12[iDer][iR].r += aux1.r + aux12Old[iDer][iR].r;	    aux12[iDer][iR].i += aux1.i + aux12Old[iDer][iR].i;	    aux12Old[iDer][iR] = aux1;		    	    aux1.r = -v2[iDer + 1][1].i;	    aux1.i =  v2[iDer + 1][1].r;	    	    aux1.r = J11 * taper[iU] * aux1.r;	    aux1.i = J11 * taper[iU] * aux1.i;	    	    aux22[iDer][iR].r += aux1.r + aux22Old[iDer][iR].r;	    aux22[iDer][iR].i += aux1.i + aux22Old[iDer][iR].i;	    aux22Old[iDer][iR] = aux1;	 }      }   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -