Ignore:
Timestamp:
09/25/15 14:36:36 (9 years ago)
Author:
dubos
Message:

Introduced DEC convention for velocity - HEVI only - cleanup to follow

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/geometry.f90

    r356 r362  
    2222    TYPE(t_field),POINTER :: de(:) 
    2323    TYPE(t_field),POINTER :: le(:) 
     24    TYPE(t_field),POINTER :: le_de(:) ! le/de, 0. if de=0. 
    2425    TYPE(t_field),POINTER :: Riv(:) 
    2526    TYPE(t_field),POINTER :: Riv2(:) 
     
    6970  REAL(rstd),POINTER :: le(:)          ! lenght of a edge 
    7071!$OMP THREADPRIVATE(le) 
     72  REAL(rstd),POINTER :: le_de(:)          ! le/de 
     73!$OMP THREADPRIVATE(le_de) 
    7174  REAL(rstd),POINTER :: Riv(:,:)       ! weight 
    7275!$OMP THREADPRIVATE(Riv) 
     
    116119    CALL allocate_field(geom%de,field_u,type_real) 
    117120    CALL allocate_field(geom%le,field_u,type_real) 
     121    CALL allocate_field(geom%le_de,field_u,type_real) 
    118122    CALL allocate_field(geom%bi,field_t,type_real) 
    119123    CALL allocate_field(geom%Av,field_z,type_real) 
     
    150154    de=geom%de(ind) 
    151155    le=geom%le(ind) 
     156    le_de=geom%le_de(ind) 
    152157    Av=geom%Av(ind) 
    153158    Riv=geom%Riv(ind) 
     
    438443          CALL dist_cart(xyz_v(n+z_up,:), xyz_v(n+z_lup,:),le(n+u_lup)) 
    439444          CALL dist_cart(xyz_v(n+z_ldown,:), xyz_v(n+z_down,:),le(n+u_ldown)) 
    440           
     445 
     446          le_de(n+u_right)=le(n+u_right)/de(n+u_right) ! NaN possible but should be harmless 
     447          le_de(n+u_lup)  =le(n+u_lup)  /de(n+u_lup) 
     448          le_de(n+u_ldown)=le(n+u_ldown)/de(n+u_ldown) 
     449 
    441450          Ai(n)=0 
    442451          DO k=0,5 
     
    528537            CALL surf_triangle(xyz_i(n,:), xyz_v(n+z_pos(k+1),:), xyz_i(n+t_pos(k+1),:),S1) 
    529538            CALL surf_triangle(xyz_i(n,:), xyz_v(n+z_pos(k+1),:), xyz_i(n+t_pos(MOD(k+1+6,6)+1),:),S2) 
     539!            Riv(n,k+1)=0.5*(S1+S2)*(radius**2) ! Definition modified for DEC 
    530540            Riv(n,k+1)=0.5*(S1+S2)/Ai(n) 
    531541            Riv2(n,k+1)=0.5*(S1+S2)/surf_v(k+1) 
Note: See TracChangeset for help on using the changeset viewer.