/* anisotropic velocity kernels using the ACFLN structure, but anisotropic velocity kernels are stored. see applied cplknl subroutine in make file for new kernels * fetchknlc.c * translation of fetchknl() in partsubs.f to c * Compute Mkk' but associated to dVs/Vs, dVp/Vp */ /*#include "/home/u1/pepe/LIB/prem.h"*/ #include "dimensiony.h" #include "/data/25/gung/,eigfun/premy_st.h" /*#include "/data/22/mpanning/kernels/gung/struct_anis.h"*/ #include "struct_anisall.h" #include "/data/25/gung/,eigfun/,kernel/,src/eigeny_st.h" /*#include "/home/u1/pepe/LIB/structeiglib.h"*/ /*void vel(), cplknl_anisall();*/ void cplknl_anisall(); float cplknl_disc(); void fetchknlc_anisall(knla,disc,iq1,iq2,ndisc,ww,eig1,eig2,prem,iopt) float *disc; int iq1,iq2,ndisc,iopt; float ww; knla_st_dyn *knla; eigen_st *eig1,*eig2; prem_st *prem; { float wsq,r; /*float vp[NNDLPNT], vs[NNDLPNT];*/ int i,nod; wsq=ww*ww; cplknl_anisall(0,eig1,eig2,knla,prem,iopt); /* vel(prem,vp,vs,ww); */ /* wsq = normalization factor */ for(i=iq1;i<=iq2;i++) { knla->a[i]=knla->a[i]*wsq; knla->c[i]=knla->c[i]*wsq; knla->f[i]=knla->f[i]*wsq; knla->l[i]=knla->l[i]*wsq; knla->n[i]=knla->n[i]*wsq; knla->rho[i]=knla->rho[i]*wsq; knla->g[i]=knla->g[i]*wsq; knla->b[i]=knla->b[i]*wsq; knla->h[i]=knla->h[i]*wsq; knla->cs[i]=knla->cs[i]*wsq; } nod=prem->majordisc.nsl; /* ocean */ r=prem->radius[nod]; disc[0]=r*cplknl_disc(0,nod,eig1,eig2,prem)*wsq; printf("Seafl %g\n",disc[0]); nod=prem->majordisc.moho; /* moho */ r=prem->radius[nod]; disc[1]=r*cplknl_disc(0,nod,eig1,eig2,prem)*wsq; printf("Moho %g\n",disc[1]); nod=prem->majordisc.n670; /* 670 */ r=prem->radius[nod]; disc[2]=r*cplknl_disc(0,nod,eig1,eig2,prem)*wsq; nod=prem->majordisc.noc; /* noc */ r=prem->radius[nod]; disc[3]=r*cplknl_disc(0,nod,eig1,eig2,prem)*wsq; }