Changeset 156 for codes/icosagcm/trunk/src/disvert.f90
- Timestamp:
- 06/03/13 23:45:04 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/disvert.f90
r131 r156 4 4 REAL(rstd), SAVE, POINTER :: bp(:) 5 5 REAL(rstd), SAVE, POINTER :: presnivs(:) 6 REAL(rstd), SAVE, POINTER :: mass_al(:), mass_bl(:), mass_ak(:), mass_bk(:), mass_dak(:), mass_dbk(:) 7 REAL(rstd) :: ptop ! pressure at top of atmosphere l=llm+1 6 8 7 9 CONTAINS … … 17 19 IMPLICIT NONE 18 20 CHARACTER(LEN=255) :: disvert_type = 'std' 19 21 INTEGER :: l 22 20 23 CALL getin("disvert",disvert_type) 21 24 … … 61 64 62 65 END SELECT 66 67 ! Convert from pressure coordinate to mass coordinate 68 ! pk = ap(k) + bp(k)*ps(ij) = ptop + g*( mass_ak(k) + mass_bk(k)*ms(ij) ) 69 ptop = ap(llm+1) 70 ALLOCATE(mass_al(llm+1)) 71 ALLOCATE(mass_bl(llm+1)) 72 ALLOCATE(mass_ak(llm)) 73 ALLOCATE(mass_bk(llm)) 74 ALLOCATE(mass_dak(llm)) 75 ALLOCATE(mass_dbk(llm)) 76 77 ! FIXME : leave ps for the moment ; change ps to ms later 78 DO l=1,llm+1 79 ! mass_al(l) = (ap(l)-ptop)/g 80 ! mass_bl(l) = bp(l)/g 81 mass_al(l) = (ap(l)-ptop) 82 mass_bl(l) = bp(l) 83 END DO 84 DO l=1,llm 85 mass_ak(l) = .5*(mass_al(l)+mass_al(l+1)) 86 mass_bk(l) = .5*(mass_bl(l)+mass_bl(l+1)) 87 mass_dak(l) = mass_al(l)-mass_al(l+1) ! >0 88 mass_dbk(l) = mass_bl(l)-mass_bl(l+1) ! >0 89 END DO 63 90 64 91 END SUBROUTINE init_disvert
Note: See TracChangeset
for help on using the changeset viewer.