Changeset 427 for codes/icosagcm/trunk/src/geometry.f90
- Timestamp:
- 06/14/16 07:04:15 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/geometry.f90
r393 r427 24 24 TYPE(t_field),POINTER :: le_de(:) ! le/de, 0. if de=0. 25 25 TYPE(t_field),POINTER :: Riv(:) 26 TYPE(t_field),POINTER :: S1(:) 27 TYPE(t_field),POINTER :: S2(:) 26 28 TYPE(t_field),POINTER :: Riv2(:) 27 29 TYPE(t_field),POINTER :: ne(:) … … 70 72 REAL(rstd),POINTER :: le(:) ! lenght of a edge 71 73 !$OMP THREADPRIVATE(le) 72 REAL(rstd),POINTER :: le_de(:) 74 REAL(rstd),POINTER :: le_de(:) ! le/de 73 75 !$OMP THREADPRIVATE(le_de) 76 REAL(rstd),POINTER :: S1(:,:) ! area of sub-triangle 77 !$OMP THREADPRIVATE(S1) 78 REAL(rstd),POINTER :: S2(:,:) ! area of sub-tirangle 79 !$OMP THREADPRIVATE(S2) 74 80 REAL(rstd),POINTER :: Riv(:,:) ! weight 75 81 !$OMP THREADPRIVATE(Riv) … … 122 128 CALL allocate_field(geom%bi,field_t,type_real) 123 129 CALL allocate_field(geom%Av,field_z,type_real) 130 CALL allocate_field(geom%S1,field_t,type_real,6) 131 CALL allocate_field(geom%S2,field_t,type_real,6) 124 132 CALL allocate_field(geom%Riv,field_t,type_real,6) 125 133 CALL allocate_field(geom%Riv2,field_t,type_real,6) … … 156 164 le_de=geom%le_de(ind) 157 165 Av=geom%Av(ind) 166 S1=geom%S1(ind) 167 S2=geom%S2(ind) 158 168 Riv=geom%Riv(ind) 159 169 Riv2=geom%Riv2(ind) … … 420 430 INTEGER :: ind,i,j,k,n 421 431 TYPE(t_domain),POINTER :: d 422 REAL(rstd) :: S 432 REAL(rstd) :: S12 423 433 REAL(rstd) :: w(6) 424 434 REAL(rstd) :: lon,lat 425 435 INTEGER :: ii_glo,jj_glo 426 REAL(rstd) :: S 1,S2436 REAL(rstd) :: S 427 437 428 438 … … 569 579 570 580 DO k=0,5 571 CALL surf_triangle(xyz_i(n,:), xyz_v(n+z_pos(k+1),:), xyz_i(n+t_pos(k+1),:),S1 )572 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 )573 ! Riv(n,k+1)=0.5*(S1+S2)*(radius**2) ! Definition modified for DEC 574 Riv(n,k+1)= 0.5*(S1+S2)/Ai(n)575 Riv2(n,k+1)= 0.5*(S1+S2)/surf_v(k+1)581 CALL surf_triangle(xyz_i(n,:), xyz_v(n+z_pos(k+1),:), xyz_i(n+t_pos(k+1),:),S1(n,k+1) ) 582 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(n,k+1) ) 583 S12 = .5*(S1(n,k+1)+S2(n,k+1)) 584 Riv(n,k+1)=S12/Ai(n) 585 Riv2(n,k+1)=S12/surf_v(k+1) 576 586 ENDDO 577 587
Note: See TracChangeset
for help on using the changeset viewer.