Changeset 397 for codes/icosagcm/trunk/src/pression.f90
- Timestamp:
- 06/06/16 20:41:52 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/pression.f90
r295 r397 25 25 26 26 END SUBROUTINE pression 27 28 SUBROUTINE pression_mid(f_ps,f_pmid) 29 USE icosa 30 IMPLICIT NONE 31 TYPE(t_field), POINTER :: f_ps(:) 32 TYPE(t_field), POINTER :: f_pmid(:) 27 33 34 REAL(rstd), POINTER :: ps(:) 35 REAL(rstd), POINTER :: pmid(:,:) 36 INTEGER :: ind 37 38 !$OMP BARRIER 39 DO ind=1,ndomain 40 IF (.NOT. assigned_domain(ind)) CYCLE 41 CALL swap_dimensions(ind) 42 CALL swap_geometry(ind) 43 ps=f_ps(ind) 44 pmid=f_pmid(ind) 45 CALL compute_pression_mid(ps, pmid,0) 46 ENDDO 47 !$OMP BARRIER 48 49 END SUBROUTINE pression_mid 50 28 51 SUBROUTINE compute_pression(ps,p,offset) 29 52 USE icosa … … 49 72 50 73 END SUBROUTINE compute_pression 74 75 SUBROUTINE compute_pression_mid(ps,pmid,offset) 76 USE icosa 77 USE disvert_mod 78 USE omp_para 79 IMPLICIT NONE 80 REAL(rstd),INTENT(IN) :: ps(iim*jjm) 81 REAL(rstd),INTENT(OUT) :: pmid(iim*jjm,llm) 82 INTEGER,INTENT(IN) :: offset 83 INTEGER :: i,j,ij,l 84 85 IF(ap_bp_present) THEN 86 DO l = ll_begin, ll_end 87 DO j=jj_begin-offset,jj_end+offset 88 DO i=ii_begin-offset,ii_end+offset 89 ij=(j-1)*iim+i 90 pmid(ij,l) = 0.5*(ap(l)+ap(l+1) + (bp(l)+bp(l+1)) * ps(ij)) 91 ENDDO 92 ENDDO 93 ENDDO 94 END IF 95 96 END SUBROUTINE compute_pression_mid 51 97 52 98 END MODULE pression_mod
Note: See TracChangeset
for help on using the changeset viewer.