Ignore:
Timestamp:
10/16/17 13:07:30 (7 years ago)
Author:
dubos
Message:

devel : reconstruct fluxes at cell centers

File:
1 moved

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/diagnostics/wind.F90

    r584 r585  
    55  PRIVATE 
    66 
    7   PUBLIC :: compute_wind_centered, compute_wind_centered_lonlat_compound, & 
     7  PUBLIC :: compute_wind_centered, compute_flux_centered, & 
     8       compute_wind_centered_lonlat_compound, compute_wind2d_perp_from_lonlat_compound, & 
    89       compute_wind_centered_from_lonlat_compound, compute_wind_perp_from_lonlat_compound, & 
    9        un2ulonlat, ulonlat2un, compute_wind2d_perp_from_lonlat_compound 
     10       un2ulonlat, ulonlat2un 
    1011        
    1112CONTAINS 
     
    5152  REAL(rstd) :: ue(3*iim*jjm,llm) 
    5253  REAL(rstd) :: ucenter(iim*jjm,llm,3) 
    53   INTEGER :: i,j,ij,l     
    54   
    55     DO l=ll_begin,ll_end 
    56       DO j=jj_begin,jj_end 
    57         DO i=ii_begin,ii_end 
    58           ij=(j-1)*iim+i 
    59           ! Perot reconstruction based on Gauss' theorem 
    60           ! u = sum( u.edge_normal * edge_length * (edge_midpoint-cell_centroid) ) /cell_area 
    61           ucenter(ij,l,:)=1/Ai(ij)*                                                                                                & 
    62                         ( ne(ij,right)*ue(ij+u_right,l)*le(ij+u_right)*((xyz_v(ij+z_rdown,:)+xyz_v(ij+z_rup,:))/2-centroid(ij,:))  & 
    63                          + ne(ij,rup)*ue(ij+u_rup,l)*le(ij+u_rup)*((xyz_v(ij+z_rup,:)+xyz_v(ij+z_up,:))/2-centroid(ij,:))          & 
    64                          + ne(ij,lup)*ue(ij+u_lup,l)*le(ij+u_lup)*((xyz_v(ij+z_up,:)+xyz_v(ij+z_lup,:))/2-centroid(ij,:))          & 
    65                          + ne(ij,left)*ue(ij+u_left,l)*le(ij+u_left)*((xyz_v(ij+z_lup,:)+xyz_v(ij+z_ldown,:))/2-centroid(ij,:))    & 
    66                          + ne(ij,ldown)*ue(ij+u_ldown,l)*le(ij+u_ldown)*((xyz_v(ij+z_ldown,:)+xyz_v(ij+z_down,:))/2-centroid(ij,:))& 
    67                          + ne(ij,rdown)*ue(ij+u_rdown,l)*le(ij+u_rdown)*((xyz_v(ij+z_down,:)+xyz_v(ij+z_rdown,:))/2-centroid(ij,:))) 
    68         ENDDO 
    69       ENDDO 
    70     ENDDO 
    71   
     54  INTEGER :: ij,l 
     55  REAL(rstd) :: ue_le, cx,cy,cz, ux,uy,uz 
     56#include "../kernels/wind_centered.k90" 
    7257 END SUBROUTINE compute_wind_centered 
     58  
     59  SUBROUTINE compute_flux_centered(ue,ucenter) 
     60  REAL(rstd) :: ue(3*iim*jjm,llm) 
     61  REAL(rstd) :: ucenter(iim*jjm,llm,3) 
     62  INTEGER :: ij,l 
     63  REAL(rstd) :: ue_le, cx,cy,cz, ux,uy,uz 
     64#include "../kernels/flux_centered.k90" 
     65  END SUBROUTINE compute_flux_centered 
    7366  
    7467   
Note: See TracChangeset for help on using the changeset viewer.