Ignore:
Timestamp:
12/13/13 18:33:56 (11 years ago)
Author:
mtort
Message:

Prepared structure for non-traditional shallow-water equations

File:
1 edited

Legend:

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

    r151 r179  
    184184  END SUBROUTINE compute_wind_from_lonlat_compound 
    185185  
     186  SUBROUTINE compute_wind2D_from_lonlat_compound(ulon, ulat, u) 
     187  USE icosa   
     188   
     189  IMPLICIT NONE 
     190  REAL(rstd) :: u(3*iim*jjm,3) 
     191  REAL(rstd) :: ulon(3*iim*jjm) 
     192  REAL(rstd) :: ulat(3*iim*jjm) 
     193   
     194  INTEGER :: i,j,ij 
     195   
     196  DO j=jj_begin-1,jj_end+1 
     197     DO i=ii_begin-1,ii_end+1 
     198        ij=(j-1)*iim+i 
     199        u(ij+u_right,:)=ulon(ij+u_right)*elon_e(ij+u_right,:)+ ulat(ij+u_right)*elat_e(ij+u_right,:) 
     200        u(ij+u_lup,:)=ulon(ij+u_lup)*elon_e(ij+u_lup,:) + ulat(ij+u_lup)*elat_e(ij+u_lup,:) 
     201        u(ij+u_ldown,:)=ulon(ij+u_ldown)*elon_e(ij+u_ldown,:) + ulat(ij+u_ldown)*elat_e(ij+u_ldown,:) 
     202     ENDDO 
     203  ENDDO 
     204     
     205  END SUBROUTINE compute_wind2D_from_lonlat_compound 
     206  
    186207  SUBROUTINE compute_wind_perp_from_lonlat_compound(ulon, ulat, up) 
    187208  USE icosa   
     
    210231  END SUBROUTINE compute_wind_perp_from_lonlat_compound 
    211232    
     233  SUBROUTINE compute_wind2D_perp_from_lonlat_compound(ulon, ulat, up) 
     234  USE icosa   
     235     
     236  IMPLICIT NONE 
     237  REAL(rstd) :: up(3*iim*jjm) 
     238  REAL(rstd) :: ulon(3*iim*jjm) 
     239  REAL(rstd) :: ulat(3*iim*jjm) 
     240  REAL(rstd) :: u(3*iim*jjm,3) 
     241 
     242  INTEGER :: i,j,ij  
     243   
     244  CALL compute_wind2D_from_lonlat_compound(ulon, ulat, u) 
     245  DO j=jj_begin-1,jj_end+1 
     246     DO i=ii_begin-1,ii_end+1 
     247        ij=(j-1)*iim+i 
     248        up(ij+u_right)=sum(u(ij+u_right,:)*ep_e(ij+u_right,:)) 
     249        up(ij+u_lup)=sum(u(ij+u_lup,:)*ep_e(ij+u_lup,:)) 
     250        up(ij+u_ldown)=sum(u(ij+u_ldown,:)*ep_e(ij+u_ldown,:)) 
     251     ENDDO 
     252  ENDDO 
     253    
     254  END SUBROUTINE compute_wind2D_perp_from_lonlat_compound 
     255    
    212256 SUBROUTINE compute_wind_centered_lonlat_compound(uc, ulon, ulat) 
    213257  USE icosa   
Note: See TracChangeset for help on using the changeset viewer.