Changeset 22382


Ignore:
Timestamp:
02/01/18 11:01:09 (7 years ago)
Author:
adhikari
Message:

NEW: extracting love numbers at depth

Location:
issm/trunk-jpl/src/c
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/cores/love_core.cpp

    r22015 r22382  
    2222        IssmDouble  g0,r0,mu0;
    2323        bool        allow_layer_deletion;
     24        bool        love_kernels;
    2425        int         forcing_type;
    2526        bool        verbosemod = (int)VerboseModule();
     
    4243        femmodel->parameters->FindParam(&mu0,LoveMu0Enum);
    4344        femmodel->parameters->FindParam(&allow_layer_deletion,LoveAllowLayerDeletionEnum);
     45        femmodel->parameters->FindParam(&love_kernels,LoveKernelsEnum);
    4446        femmodel->parameters->FindParam(&forcing_type,LoveForcingTypeEnum);
    4547       
     
    5961        IssmDouble*  LoveHi = xNewZeroInit<IssmDouble>(nfreq*(sh_nmax+1));
    6062        IssmDouble*  LoveLi = xNewZeroInit<IssmDouble>(nfreq*(sh_nmax+1));
    61        
     63
     64        /*Initialize love kernels (real and imaginary parts): */
     65        IssmDouble*  LoveKernelsReal = xNewZeroInit<IssmDouble>(nfreq*(sh_nmax+1)*(matlitho->numlayers+1)*6);
     66        IssmDouble*  LoveKernelsImag = xNewZeroInit<IssmDouble>(nfreq*(sh_nmax+1)*(matlitho->numlayers+1)*6);
     67
    6268        /*call the main module: */
    63         FourierLoveCorex(LoveKr,LoveKi,LoveHr,LoveHi,LoveLr,LoveLi,  //output
     69        FourierLoveCorex(LoveKr,LoveKi,LoveHr,LoveHi,LoveLr,LoveLi,LoveKernelsReal,LoveKernelsImag,  //output
    6470                        nfreq,frequencies,sh_nmax,sh_nmin,g0,r0,mu0,allow_layer_deletion,forcing_type,verbosemod, //parameter inputs
    6571                        matlitho->numlayers, matlitho->radius, matlitho->viscosity, matlitho->lame_lambda, matlitho->lame_mu,
     
    7480        femmodel->results->AddObject(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,LoveHiEnum,LoveHi,sh_nmax+1,nfreq,0,0));
    7581        femmodel->results->AddObject(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,LoveLiEnum,LoveLi,sh_nmax+1,nfreq,0,0));
     82        /*Only when love_kernels is set unity*/
     83        if (love_kernels==1) {
     84                femmodel->results->AddObject(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,LoveKernelsRealEnum,LoveKernelsReal,(sh_nmax+1)*(matlitho->numlayers+1)*6,nfreq,0,0));
     85                femmodel->results->AddObject(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,LoveKernelsImagEnum,LoveKernelsImag,(sh_nmax+1)*(matlitho->numlayers+1)*6,nfreq,0,0));
     86        }
    7687
    7788        /*Free ressources:*/
     
    8394        xDelete<IssmDouble>(LoveHi);
    8495        xDelete<IssmDouble>(LoveLi);
     96        xDelete<IssmDouble>(LoveKernelsReal);
     97        xDelete<IssmDouble>(LoveKernelsImag);
    8598}
  • issm/trunk-jpl/src/c/modules/FourierLoveCorex/FourierLoveCorex.cpp

    r22059 r22382  
    1212extern "C" {
    1313        int lnb_setup_( IssmDouble* LoveKr, IssmDouble* LoveKi, IssmDouble* LoveHr, IssmDouble* LoveHi, IssmDouble* LoveLr,
    14                 IssmDouble* LoveLi, int* pnfreq, IssmDouble* frequencies, int* psh_nmax, int* psh_nmin,
    15                 IssmDouble* pg0, IssmDouble* pr0, IssmDouble* pmu0,bool* pallow_layer_deletion, int* pforcing_type, bool* pverbosemod,
     14                IssmDouble* LoveLi, IssmDouble* LoveKernelsReal, IssmDouble* LoveKernelsImag,
     15                int* pnfreq, IssmDouble* frequencies, int* psh_nmax, int* psh_nmin, IssmDouble* pg0,
     16                IssmDouble* pr0, IssmDouble* pmu0,bool* pallow_layer_deletion, int* pforcing_type, bool* pverbosemod,
    1617                int* pnumlayers, IssmDouble* radius, IssmDouble* viscosity, IssmDouble* lame_lambda, IssmDouble* lame_mu,
    1718                IssmDouble* burgers_viscosity, IssmDouble* burgers_mu, IssmDouble* density, IssmDouble* isburgers, IssmDouble* issolid);
    18 
    1919}
    2020
    21 /*}}}*/
    22 
    2321void FourierLoveCorex( IssmDouble* LoveKr, IssmDouble* LoveKi, IssmDouble* LoveHr, IssmDouble* LoveHi, IssmDouble* LoveLr,
    24                 IssmDouble* LoveLi, int nfreq, IssmDouble* frequencies, int sh_nmax, int sh_nmin,
    25                 IssmDouble g0, IssmDouble r0, IssmDouble mu0,bool allow_layer_deletion, int forcing_type, bool verbosemod,
     22                IssmDouble* LoveLi, IssmDouble* LoveKernelsReal, IssmDouble* LoveKernelsImag,
     23                int nfreq, IssmDouble* frequencies, int sh_nmax, int sh_nmin, IssmDouble g0,
     24                IssmDouble r0, IssmDouble mu0,bool allow_layer_deletion, int forcing_type, bool verbosemod,
    2625                int numlayers, IssmDouble* radius, IssmDouble* viscosity, IssmDouble* lame_lambda, IssmDouble* lame_mu,
    2726                IssmDouble* burgers_viscosity, IssmDouble* burgers_mu, IssmDouble* density, IssmDouble* isburgers, IssmDouble* issolid){
     
    2928        /*Call fortran driver: */
    3029        lnb_setup_(  LoveKr,  LoveKi,  LoveHr,  LoveHi,  LoveLr,
    31                  LoveLi,  &nfreq,  frequencies,  &sh_nmax,  &sh_nmin,
    32                  &g0,  &r0,  &mu0, &allow_layer_deletion,  &forcing_type, &verbosemod,
     30                 LoveLi, LoveKernelsReal, LoveKernelsImag,
     31                 &nfreq,  frequencies,  &sh_nmax,  &sh_nmin, &g0, 
     32                 &r0,  &mu0, &allow_layer_deletion, &forcing_type, &verbosemod,
    3333                 &numlayers,  radius,  viscosity,  lame_lambda,  lame_mu,
    3434                 burgers_viscosity,  burgers_mu,  density,  isburgers,  issolid);
    35 
    36        
    37        
    3835}
  • issm/trunk-jpl/src/c/modules/FourierLoveCorex/FourierLoveCorex.h

    r22059 r22382  
    1010/* local prototypes: */
    1111void FourierLoveCorex( IssmDouble* LoveKr, IssmDouble* LoveKi, IssmDouble* LoveHr, IssmDouble* LoveHi, IssmDouble* LoveLr,
    12                 IssmDouble* LoveLi,int nfreq, IssmDouble* frequencies, int sh_nmax, int sh_nmin, IssmDouble g0, IssmDouble r0,
    13                 IssmDouble mu0,bool allow_layer_deletion, int forcing_type, bool verbosemod, int numlayers, IssmDouble* radius, 
    14                 IssmDouble* viscosity,IssmDouble* lame_lambda, IssmDouble* lame_mu, IssmDouble* burgers_viscosity, IssmDouble* burgers_mu, 
    15                 IssmDouble* density,IssmDouble* isburgers, IssmDouble* issolid);
     12                IssmDouble* LoveLi, IssmDouble* LoveKernelsReal, IssmDouble* LoveKernelsImag,
     13                int nfreq, IssmDouble* frequencies, int sh_nmax, int sh_nmin, IssmDouble g0,
     14                IssmDouble r0, IssmDouble mu0,bool allow_layer_deletion, int forcing_type, bool verbosemod,
     15                int numlayers, IssmDouble* radius, IssmDouble* viscosity,IssmDouble* lame_lambda, IssmDouble* lame_mu,
     16                IssmDouble* burgers_viscosity, IssmDouble* burgers_mu, IssmDouble* density,IssmDouble* isburgers, IssmDouble* issolid);
    1617
    1718#endif  /* _FOURIERLOVECOREX_H */
  • issm/trunk-jpl/src/c/modules/FourierLoveCorex/love_numbers.f90

    r22097 r22382  
    1  subroutine lnb_setup(  ksr, ksi, hsr, hsi, lsr, lsi,  dnfreq,  frequencies,  ddegmax, ddegmin, &
    2           dgo0,  dr0,  dmu0, dallow_layer_del,  source_type, ddisplay, dnlayer,  dradius,    &
     1 
     2 !subroutine lnb_setup {{{
     3 subroutine lnb_setup(  ksr, ksi, hsr, hsi, lsr, lsi, lksr, lksi, dnfreq,  frequencies,  ddegmax, ddegmin, &
     4          dgo0,  dr0,  dmu0, dallow_layer_del, source_type, ddisplay, dnlayer,  dradius,    &
    35          dvic,  dlac,  dmuc, dvic2,  dmuc2,  droc, dburgers,  dsoliddim)
     6
    47 use lnb_param
    58 use util
     
    1417 double precision, dimension(dnfreq) :: frequencies
    1518
     19 double complex :: lks(dnfreq,(ddegmax+1)*(dnlayer+1)*6)
     20 double precision, dimension(dnfreq,(ddegmax+1)*(dnlayer+1)*6) :: lksr, lksi
     21 
    1622 double precision   :: dmu0,dgo0,dr0
    1723 logical :: dallow_layer_del, ddisplay
     
    5965        ls=hs
    6066 
    61  call love_numbers(frequencies,source_type,hs,ls,ks)
     67 call love_numbers(frequencies,source_type,hs,ls,ks,lks)
    6268
    6369 hsr=dble(hs)
     
    6773 lsr=dble(ls)
    6874 lsi=dimag(ls)
     75 !!! love kernels
     76 lksr=dble(lks)
     77 lksi=dimag(lks)
    6978
    7079end subroutine
    71 
    72 !====================
    73  subroutine love_numbers(frequencies,source_type,hs,ls,ks)
    74 !====================
     80! }}}
     81
     82!subroutine love_numbers {{{
     83 subroutine love_numbers(frequencies,source_type,hs,ls,ks,lks)
    7584
    7685 use model
     
    8998 integer :: i,j,k,n, fr,m,l, source_type
    9099 double complex :: hs(nfreq,degmax+1), ls(nfreq,degmax+1), ks(nfreq,degmax+1)
    91 
     100 
     101 double complex, dimension((nlayer+1)*6,1) :: lovekernels
     102 double complex :: lks(nfreq,(degmax+1)*(nlayer+1)*6)
    92103
    93104 double precision :: cpu_time1(100)
     
    118129 ! Test number of interfaces and of boundary conditions
    119130  nbc = 0
    120   do i=1,nlayer+1
    121  if (radbc(i)) nbc=nbc+6
    122   enddo
    123 
     131  !!! >>> SA: 01/27/2018 => following changes are made to retrieve love numbers at depth
     132  !do i=1,nlayer+1
     133 !if (radbc(i)) nbc=nbc+6
     134  !enddo
     135  nbc = (nlayer+1)*6
     136  !!! >>> SA
    124137
    125138 ifmin=source_type
     
    280293   call external_forcing(deg,f,sourcs,nfext,nbc)
    281294        !print*,'forcing ok', layerrap
    282    call solution(deg,bc,indx,f,sourcs,nfext,nbc,loveh,lovel,lovek,delta)
     295   call solution(deg,bc,indx,f,sourcs,nfext,nbc,loveh,lovel,lovek,delta,lovekernels)
    283296
    284297        !print*,'first_sol', layerrap, epsdb
     
    318331     call boundary_conditions_matrix(bc,indx,nbc)
    319332     call external_forcing(deg,f,sourcs,nfext,nbc)
    320      call solution(deg,bc,indx,f,sourcs,nfext,nbc,loveh,lovel,lovek,delta)
     333     call solution(deg,bc,indx,f,sourcs,nfext,nbc,loveh,lovel,lovek,delta,lovekernels)
    321334
    322335    end do
     
    324337
    325338   !-- Saving Love numbers
    326 
    327 
    328339    hs(fr,deg+1) = loveh
    329340    ks(fr,deg+1) = lovek - 1.d0
    330341    ls(fr,deg+1) = lovel
     342   
     343    !!! and love kernels
     344    do i=1,nbc
     345      lks(fr,deg*nbc+i) = lovekernels(i,1)
     346    end do
     347    !!! for ks... 6th variable is y5 => love_k
     348    do i = 1,nbc/6
     349      lks(fr,deg*nbc+6*i) = lks(fr,deg*nbc+6*i) - (radius(i)/ra)**deg
     350    end do
    331351
    332352        !print*,dble(hs(fr,deg+1)), dimag(hs(fr,deg+1)),dble(ks(fr,deg+1)), dimag(ks(fr,deg+1))
     
    362382 deallocate( bc, indx, f, sourcs )
    363383end subroutine
     384! }}}
     385
  • issm/trunk-jpl/src/c/modules/FourierLoveCorex/lovenb_sub.f90

    r22059 r22382  
    88 contains
    99 
     10 ! subroutine boundary_conditions_matrix {{{
    1011 subroutine boundary_conditions_matrix(bc,indx,nbc)
    11 !-------------------------------------
    1212
    1313  implicit none
     
    7777   end if       
    7878   
    79    
    8079   do j = 1,ny
    81                 ! Typing ystart
    82                 if (radbc(i)) then
    83                         ystart(:)=0.d0
     80                ! Typing ystart
     81      !!! >>> SA: 01/27/2018 => changes made to retrieve love numbers at depth
     82                !!!if (radbc(i)) then
     83                ystart(:)=0.d0
    8484                        ystart(j)= valini
    8585                        k=ibc+1
    86                 else
    87                         ystart(:)=ystep(j,:)
    88                 end if
     86                !!!else
     87                !!!     ystart(:)=ystep(j,:)
     88                !!!end if
    8989               
    9090                ! Numerical Integration
     
    9595               
    9696                ! Boundary Condition matrix - propagation part
    97                 if (radbc(i+1)) then
     97                !!!if (radbc(i+1)) then
    9898                        ii = 6*k+is
    9999                        jj = 6*k+j+is-3
     
    101101                                bc(ii+kk,jj) = ystart(kk)*one
    102102                        end do
    103                 else
    104                         ystep(j,:)=ystart(:)
    105                 end if
     103                !!!else
     104                !!!     ystep(j,:)=ystart(:)
     105                !!!end if
    106106   end do
    107107       
    108108       
    109    if (radbc(i)) then
     109   !!!if (radbc(i)) then
    110110   
    111111        ! Boundary Condition matrix - solid regions
     
    118118                        bc(j+6*ibc,j+6*ibc+3) = one
    119119                end do
    120                 ibc = ibc+1
    121120               
    122121        ! Boundary Condition matrix - liquid regions
     
    143142                bc(ii+2,ii)=-1.d0
    144143                bc(ii+5,ii-1)= 4.d0*pi*GG*ro1*ra/go0
    145                 ibc = ibc+1
    146144        end if 
    147        
    148     end if
    149        
    150        
     145        ibc = ibc+1
     146       
     147   !! end if
    151148       
    152149  end do
     
    172169        !print*, bc, imag_eval
    173170 end subroutine boundary_conditions_matrix
    174  
     171  ! }}}
     172 
     173 ! subroutine sphere {{{
    175174 subroutine sphere(i,n,bc)
    176175!------------------------
     
    223222
    224223 end subroutine sphere
    225  
     224 ! }}}
     225 
     226 ! subroutine external_forcing {{{
    226227 subroutine external_forcing(n,source,sourcs,nfext,nbc)
    227228!-----------------------------------
     
    297298 
    298299 end subroutine external_forcing
    299  
    300  subroutine solution(n,bc,indx,f,sourcs,nfext,nbc,loveh,lovel,lovek,delta)
     300 ! }}}
     301 
     302 ! subroutine solution {{{
     303 subroutine solution(n,bc,indx,f,sourcs,nfext,nbc,loveh,lovel,lovek,delta,love_kernels)
    301304!-------------------------------------------------
    302305
     
    305308  integer,      dimension(:), pointer :: indx
    306309  character*40, dimension(:), pointer :: sourcs
    307   double complex, dimension(nbc,1) :: sc
     310  double complex, dimension(nbc,1) :: sc, love_kernels
    308311  double complex :: loveh,lovel,lovek,loveh1,lovel1,lovek1,loveh1s,lovel1s,lovek1s
    309312  double complex :: sumh,suml,sumk,d,val,sumy2,sumy4,sumy6,rads
     
    362365                print*, 'Error in ZGESV : LAPACK linear equation solver couldn''t resolve the system'
    363366        end if
     367   !!! >>> y1, y3, y5 at surface (by default)
    364368        loveh = sc(nbc-2,1)*ra*go_surf
    365369        lovel = sc(nbc-1,1)*ra*go_surf
    366370        lovek = sc(nbc,1)*ra*go0
    367371        delta = (1.d0-dble(n+1)/dble(n)*(lovek-1.d0)+2.d0/dble(n)*loveh)
    368        
     372
     373   !!! >>> at depth [by SA on 1/31/2018]
     374   !!! sc outputs as follows (so scale it accordingly)
     375   !!!      y4 y2 y6 y1 y3 y5
     376   !!!      at center of mass of the earth (top row) => at surface (bottom row)
     377   !print *, nbc
     378   do j = 1,nbc/6
     379      !!! y4, y2, y6 are not scaled yet =>>> ask lambert ==>>>
     380      love_kernels((j-1)*6+1,1) = sc((j-1)*6+1,1)               ! y4 NOT SCALED YET
     381      love_kernels((j-1)*6+2,1) = sc((j-1)*6+2,1)               ! y2 NOT SCALED YET
     382      love_kernels((j-1)*6+3,1) = sc((j-1)*6+3,1)               ! y6 NOT SCALED YET
     383      love_kernels((j-1)*6+4,1) = sc((j-1)*6+4,1)*ra*go_surf    ! y1 => love_h
     384      love_kernels((j-1)*6+5,1) = sc((j-1)*6+5,1)*ra*go_surf    ! y3 => love_l
     385      love_kernels((j-1)*6+6,1) = sc((j-1)*6+6,1)*ra*go0        ! y5 => love_k
     386      !if (deg==2) then
     387      !   print *, real(love_kernels((j-1)*6+1,1)), real(love_kernels((j-1)*6+4,1))
     388      !end if
     389   end do
     390
     391   !if (deg==2) then
     392   !  do ibc=1,nbc/6
     393   !      print *, real(sc( (ibc-1)*6+1:(ibc-1)*6+6 , 1))
     394   !   end do
     395   !   print *, ' ************* '
     396   !   do ibc=1,nbc/6
     397   !      print *, real(love_kernels( (ibc-1)*6+1:(ibc-1)*6+6 , 1))
     398   !   end do
     399   !   print *, ' ************* '
     400   !   print*, ra*go_surf, ra*go0, mu0
     401   !end if
     402   !!! >>> SA
     403
    369404        sumy2=0.d0
    370405        sumy4=0.d0
     
    448483
    449484 end subroutine solution
    450  
    451  
     485 ! }}}
     486 
     487  ! subroutine solution_nbloutput {{{
    452488  subroutine solution_nbloutput(n,bc,indx,f,sourcs,nfext,nbc,loveh,lovel,lovek,delta)
    453489!-------------------------------------------------
     
    593629   !write(*,*),dlog10(aimag(freq)*365.d0*24.d0*3600.d0*1000.d0),'   Matrix det = ',d, lovek
    594630 
    595 
    596631 end subroutine solution_nbloutput
    597 
    598 
     632 ! }}}
    599633
    600634end module lovenb_sub
  • issm/trunk-jpl/src/c/modules/FourierLoveCorex/model.f90

    r22059 r22382  
    7373  ! Test number of interfaces and of boundary conditions
    7474  n = 0
    75   do i=1,nlayer+1
    76  if (radbc(i)) n=n+1
    77   enddo
     75  !!! >>> SA: 01/27/2018 => following changes made to retrieve love numbers at depth
     76  !do i=1,nlayer+1
     77 !if (radbc(i)) n=n+1
     78  !enddo
     79  n = nlayer+1
     80  !!! >>> SA
    7881  if (nbc/=(6*n)) then
    7982 !write(101,*),
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r22294 r22382  
    8686        parameters->AddObject(iomodel->CopyConstantObject("md.love.mu0",LoveMu0Enum));
    8787        parameters->AddObject(iomodel->CopyConstantObject("md.love.allow_layer_deletion",LoveAllowLayerDeletionEnum));
     88        parameters->AddObject(iomodel->CopyConstantObject("md.love.love_kernels",LoveKernelsEnum));
    8889        parameters->AddObject(iomodel->CopyConstantObject("md.love.forcing_type",LoveForcingTypeEnum));
    8990
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r22349 r22382  
    866866        LoveKiEnum,
    867867        LoveLiEnum,
     868        LoveKernelsEnum,
     869        LoveKernelsRealEnum,
     870        LoveKernelsImagEnum,
    868871
    869872        /*}}}*/
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r22349 r22382  
    844844                case LoveKiEnum : return "LoveKi";
    845845                case LoveLiEnum : return "LoveLi";
     846                case LoveKernelsEnum : return "LoveKernels";
     847                case LoveKernelsRealEnum : return "LoveKernelsReal";
     848                case LoveKernelsImagEnum : return "LoveKernelsImag";
    846849                case EsaUmotionEnum : return "EsaUmotion";
    847850                case EsaNmotionEnum : return "EsaNmotion";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r22349 r22382  
    862862              else if (strcmp(name,"LoveKi")==0) return LoveKiEnum;
    863863              else if (strcmp(name,"LoveLi")==0) return LoveLiEnum;
     864              else if (strcmp(name,"LoveKernels")==0) return LoveKernelsEnum;
     865              else if (strcmp(name,"LoveKernelsReal")==0) return LoveKernelsRealEnum;
     866              else if (strcmp(name,"LoveKernelsImag")==0) return LoveKernelsImagEnum;
    864867              else if (strcmp(name,"EsaUmotion")==0) return EsaUmotionEnum;
    865868              else if (strcmp(name,"EsaNmotion")==0) return EsaNmotionEnum;
     
    872875              else if (strcmp(name,"EsaStrainrateyy")==0) return EsaStrainrateyyEnum;
    873876              else if (strcmp(name,"EsaRotationrate")==0) return EsaRotationrateEnum;
    874               else if (strcmp(name,"EsaDeltathickness")==0) return EsaDeltathicknessEnum;
    875               else if (strcmp(name,"EsaUElastic")==0) return EsaUElasticEnum;
    876               else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum;
     880              if (strcmp(name,"EsaDeltathickness")==0) return EsaDeltathicknessEnum;
     881              else if (strcmp(name,"EsaUElastic")==0) return EsaUElasticEnum;
     882              else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum;
     883              else if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum;
    881884              else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
    882885              else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum;
     
    995998              else if (strcmp(name,"StressbalanceSIAAnalysis")==0) return StressbalanceSIAAnalysisEnum;
    996999              else if (strcmp(name,"StressbalanceSolution")==0) return StressbalanceSolutionEnum;
    997               else if (strcmp(name,"StressbalanceVerticalAnalysis")==0) return StressbalanceVerticalAnalysisEnum;
    998               else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
    999               else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
     1003              if (strcmp(name,"StressbalanceVerticalAnalysis")==0) return StressbalanceVerticalAnalysisEnum;
     1004              else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
     1005              else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum;
     1006              else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
    10041007              else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
    10051008              else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
Note: See TracChangeset for help on using the changeset viewer.