Ignore:
Timestamp:
06/25/13 09:32:16 (11 years ago)
Author:
dubos
Message:

Towards Lagrangian vertical coordinate (not there yet)

File:
1 edited

Legend:

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

    r156 r159  
    55  REAL(rstd), SAVE, POINTER :: presnivs(:) 
    66  REAL(rstd), SAVE, POINTER :: mass_al(:), mass_bl(:), mass_ak(:), mass_bk(:), mass_dak(:), mass_dbk(:) 
     7 
    78  REAL(rstd) :: ptop ! pressure at top of atmosphere l=llm+1 
     9  ! vertical coordinate : Lagrangian or mass-based 
     10  INTEGER, SAVE :: caldyn_eta 
     11  INTEGER, PARAMETER :: eta_mass=1, eta_lag=2 
    812 
    913CONTAINS 
     
    9195  END SUBROUTINE init_disvert   
    9296   
     97  SUBROUTINE compute_rhodz(comp, ps, rhodz) 
     98    USE icosa 
     99    USE omp_para 
     100    LOGICAL, INTENT(IN) :: comp ! .TRUE. to compute, .FALSE. to check 
     101    REAL(rstd), INTENT(IN) :: ps(iim*jjm) 
     102    REAL(rstd), INTENT(INOUT) :: rhodz(iim*jjm,llm) 
     103    REAL(rstd) :: m, err 
     104    INTEGER :: l,i,j,ij,dd 
     105    err=0. 
     106 
     107    dd=0 
     108 
     109    DO l = ll_begin, ll_end 
     110       DO j=jj_begin-dd,jj_end+dd 
     111          DO i=ii_begin-dd,ii_end+dd 
     112             ij=(j-1)*iim+i 
     113             m = ( ap(l) - ap(l+1) + (bp(l)-bp(l+1))*ps(ij) )/g  
     114             IF(comp) THEN 
     115                rhodz(ij,l) = m 
     116             ELSE 
     117                err = MAX(err,abs(m-rhodz(ij,l))) 
     118             END IF 
     119          ENDDO 
     120       ENDDO 
     121    ENDDO 
     122 
     123    IF(.NOT. comp) THEN 
     124       IF(err>1e-10) THEN 
     125          PRINT *, 'Discrepancy between ps and rhodz detected', err 
     126          STOP 
     127       ELSE 
     128!          PRINT *, 'No discrepancy between ps and rhodz detected' 
     129       END IF 
     130    END IF 
     131 
     132  END SUBROUTINE compute_rhodz 
     133 
     134  
    93135  SUBROUTINE write_apbp 
    94136  USE icosa 
Note: See TracChangeset for help on using the changeset viewer.