Changeset 831


Ignore:
Timestamp:
05/02/19 12:19:02 (5 years ago)
Author:
dubos
Message:

devel : separate module for compute_theta

Location:
codes/icosagcm/devel/src/dynamics
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/dynamics/caldyn_hevi.f90

    r827 r831  
    55  USE caldyn_kernels_hevi_mod 
    66  USE caldyn_kernels_base_mod 
     7  USE compute_theta_mod, ONLY : compute_theta 
    78  IMPLICIT NONE 
    89  PRIVATE 
  • codes/icosagcm/devel/src/dynamics/caldyn_kernels_hevi.F90

    r827 r831  
    1313  LOGICAL, SAVE :: debug_hevi_solver = .FALSE. 
    1414 
    15   PUBLIC :: compute_theta, compute_caldyn_Kv, compute_caldyn_Coriolis, & 
     15  PUBLIC :: compute_caldyn_Kv, compute_caldyn_Coriolis, & 
    1616       compute_caldyn_slow_hydro, compute_caldyn_slow_NH, & 
    1717       compute_caldyn_solver, compute_caldyn_fast 
    1818 
    1919CONTAINS 
    20  
    21   SUBROUTINE compute_theta(ps,theta_rhodz, rhodz,theta) 
    22     REAL(rstd),INTENT(IN)    :: ps(iim*jjm) 
    23     REAL(rstd),INTENT(IN)    :: theta_rhodz(iim*jjm,llm,nqdyn) 
    24     REAL(rstd),INTENT(INOUT) :: rhodz(iim*jjm,llm) 
    25     REAL(rstd),INTENT(OUT)   :: theta(iim*jjm,llm,nqdyn) 
    26     INTEGER :: ij,l,iq 
    27     REAL(rstd) :: m 
    28     CALL trace_start("compute_theta") 
    29  
    30     IF(caldyn_eta==eta_mass) THEN ! Compute mass 
    31        DO l = ll_begin,ll_end 
    32           !DIR$ SIMD 
    33           DO ij=ij_begin_ext,ij_end_ext 
    34              m = mass_dak(l)+(ps(ij)*g+ptop)*mass_dbk(l) ! ps is actually Ms 
    35              rhodz(ij,l) = m/g 
    36           END DO 
    37        END DO 
    38     END IF 
    39  
    40     DO l = ll_begin,ll_end 
    41        DO iq=1,nqdyn 
    42           !DIR$ SIMD 
    43           DO ij=ij_begin_ext,ij_end_ext 
    44              theta(ij,l,iq) = theta_rhodz(ij,l,iq)/rhodz(ij,l) 
    45           END DO 
    46        END DO 
    47     END DO 
    48  
    49     CALL trace_end("compute_theta") 
    50   END SUBROUTINE compute_theta 
    5120 
    5221  SUBROUTINE compute_caldyn_kv(ue, Kv) 
Note: See TracChangeset for help on using the changeset viewer.