[Commits] [svn:einsteintoolkit] NullDecomp/branches/tapir/src/ (Rev. 14)

bela at caltech.edu bela at caltech.edu
Wed Oct 30 21:15:48 CDT 2013


User: szilagyi
Date: 2013/10/30 09:15 PM

Modified:
 /branches/tapir/src/
  NullDecomp_IO.F90

Log:
 add new function combining IO with ylm projection

File Changes:

Directory: /branches/tapir/src/
===============================

File [modified]: NullDecomp_IO.F90
Delta lines: +67 -0
===================================================================
--- branches/tapir/src/NullDecomp_IO.F90	2013-10-22 18:26:16 UTC (rev 13)
+++ branches/tapir/src/NullDecomp_IO.F90	2013-10-31 02:15:48 UTC (rev 14)
@@ -3,12 +3,79 @@
 #include "cctk.h"
 #include "cctk_Parameters.h"
 #include "cctk_Functions.h"
+!include "cctk.h"
+!include "cctk_Arguments.h"
+!include "cctk_Parameters.h"
+!include "cctk_Functions.h"
 
 module NullDecomp_IO
    implicit none
 
  contains
+!  CCTK_POINTER, intent(in) :: GH
 
+subroutine NullDecomp_WriteCoefsForComplexFunc( &
+    FieldName, GH, TruncateFile, lsh, spin, zeta, f_n, f_s, time)
+  use NullDecomp_Vars, only: lmax
+  use NullDecomp_SpinDecomp, only: SpinDecompCoefs
+
+  character(*),                           intent(in) :: FieldName
+  CCTK_POINTER,                           intent(in) :: GH
+  logical,                                intent(in) :: TruncateFile 
+  integer,      dimension(2),             intent(in) :: lsh
+  integer,                                intent(in) :: spin
+  CCTK_COMPLEX, dimension(lsh(1),lsh(2)), intent(in) :: zeta
+  CCTK_COMPLEX, dimension(lsh(1),lsh(2)), intent(in) :: f_n, f_s
+  CCTK_REAL,                              intent(in) :: time
+
+  CCTK_COMPLEX, dimension(spin:lmax, -lmax:lmax) :: YlmCoef
+  CCTK_COMPLEX, dimension(lsh(1),lsh(2),2)       :: temp
+  DECLARE_CCTK_FUNCTIONS
+
+  temp(:,:,1) = f_n
+  temp(:,:,2) = f_s
+
+  call SpinDecompCoefs(GH, lsh(1), lsh(2), spin, zeta, temp, YlmCoef)
+
+  if (CCTK_MyProc(GH) .gt. 0) then
+     return
+  endif
+
+  call NullDecomp_WriteCoefFile(FieldName, TruncateFile, spin, lmax, YlmCoef, time)
+
+end subroutine NullDecomp_WriteCoefsForComplexFunc
+
+
+subroutine NullDecomp_WriteCoefsForRealFunc( &
+    FieldName, GH, TruncateFile, lsh, zeta, f_n, f_s, time)
+  use NullDecomp_Vars, only: lmax
+  use NullDecomp_SpinDecomp, only: SpinDecompCoefs
+
+  character(*),                           intent(in) :: FieldName
+  CCTK_POINTER,                           intent(in) :: GH
+  logical,                                intent(in) :: TruncateFile 
+  integer,      dimension(2),             intent(in) :: lsh
+  CCTK_COMPLEX, dimension(lsh(1),lsh(2)), intent(in) :: zeta
+  CCTK_REAL,    dimension(lsh(1),lsh(2)), intent(in) :: f_n, f_s
+  CCTK_REAL,                              intent(in) :: time
+
+  CCTK_COMPLEX, dimension(0:lmax, -lmax:lmax) :: YlmCoef
+  CCTK_COMPLEX, dimension(lsh(1),lsh(2),2)    :: temp
+  DECLARE_CCTK_FUNCTIONS
+
+  temp(:,:,1) = f_n
+  temp(:,:,2) = f_s
+
+  call SpinDecompCoefs(GH, lsh(1), lsh(2), 0, zeta, temp, YlmCoef)
+
+  if (CCTK_MyProc(GH) .gt. 0) then
+     return
+  endif
+
+  call NullDecomp_WriteCoefFile(FieldName, TruncateFile, 0, lmax, YlmCoef, time)
+
+end subroutine NullDecomp_WriteCoefsForRealFunc
+
 subroutine NullDecomp_WriteCoefFile(FieldName, TruncateFile, Lmin, Lmax, YlmCoef, time)
   character(*), intent(in) :: FieldName
   logical,      intent(in) :: TruncateFile 



More information about the Commits mailing list