Changeset 733 for codes/icosagcm


Ignore:
Timestamp:
08/24/18 14:23:25 (6 years ago)
Author:
dubos
Message:

devel : towards consistent discretization of kinetic energy

Location:
codes/icosagcm/devel/src/dynamics
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/dynamics/caldyn_gcm.F90

    r731 r733  
    6060    SELECT CASE(TRIM(def)) 
    6161    CASE('energy') 
    62        caldyn_conserv=energy 
     62       caldyn_conserv=conserv_energy 
    6363    CASE('enstrophy') 
    64        caldyn_conserv=enstrophy 
     64       caldyn_conserv=conserv_enstrophy 
    6565    CASE DEFAULT 
    6666       IF (is_mpi_root) PRINT *,'Bad selector for variable caldyn_conserv : <', & 
     
    6969    END SELECT 
    7070    IF (is_master) PRINT *, 'caldyn_conserv=',def 
     71 
     72    def='trisk' 
     73    CALL getin('caldyn_kinetic',def) 
     74    SELECT CASE(TRIM(def)) 
     75    CASE('trisk') 
     76       caldyn_kinetic=kinetic_trisk 
     77    CASE('consistent') 
     78       caldyn_kinetic=kinetic_consistent 
     79    CASE DEFAULT 
     80       IF (is_mpi_root) PRINT *,'Bad selector for variable caldyn_kinetic : <', & 
     81            TRIM(def),'> options are <trisk>, <consistent>' 
     82       STOP 
     83    END SELECT 
     84    IF (is_master) PRINT *, 'caldyn_kinetic=',def 
    7185 
    7286    nqdyn=1 ! default value 
     
    144158    CALL allocate_field(f_qu,field_u,type_real,llm)  
    145159    CALL allocate_field(f_qv,field_z,type_real,llm)  
     160    CALL allocate_field(f_Kv,field_z,type_real,llm)  
    146161    CALL allocate_field(f_pk,    field_t,type_real,llm,  name='pk') 
    147162    CALL allocate_field(f_wwuu,  field_u,type_real,llm+1,name='wwuu')     
     
    272287 
    273288    SELECT CASE(caldyn_conserv) 
    274     CASE(energy) ! energy-conserving 
     289    CASE(conserv_energy) ! energy-conserving 
    275290       DO ind=1,ndomain 
    276291          IF (.NOT. assigned_domain(ind)) CYCLE 
     
    333348       ENDDO        
    334349    
    335     CASE(enstrophy) ! enstrophy-conserving 
     350    CASE(conserv_enstrophy) ! enstrophy-conserving 
    336351       DO ind=1,ndomain 
    337352          IF (.NOT. assigned_domain(ind)) CYCLE 
  • codes/icosagcm/devel/src/dynamics/caldyn_hevi.f90

    r731 r733  
    55  USE caldyn_kernels_hevi_mod 
    66  USE caldyn_kernels_base_mod 
    7   USE caldyn_gcm_mod 
    87  IMPLICIT NONE 
    98  PRIVATE 
  • codes/icosagcm/devel/src/dynamics/caldyn_kernels.f90

    r731 r733  
    144144    DO l = ll_begin, ll_end 
    145145!!!  Compute mass and theta fluxes 
    146 !       IF (caldyn_conserv==energy) CALL test_message(req_qu)  
     146!       IF (caldyn_conserv==conserv_energy) CALL test_message(req_qu)  
    147147       !DIR$ SIMD 
    148148       DO ij=ij_begin_ext,ij_end_ext          
     
    190190 
    191191    SELECT CASE(caldyn_conserv) 
    192     CASE(energy) ! energy-conserving TRiSK 
     192    CASE(conserv_energy) ! energy-conserving TRiSK 
    193193 
    194194!       CALL wait_message(req_qu) ! COM03 
     
    237237       ENDDO 
    238238 
    239     CASE(enstrophy) ! enstrophy-conserving TRiSK 
     239    CASE(conserv_enstrophy) ! enstrophy-conserving TRiSK 
    240240 
    241241       DO l=ll_begin,ll_end 
  • codes/icosagcm/devel/src/dynamics/caldyn_kernels_hevi.F90

    r731 r733  
    580580    SELECT CASE(caldyn_conserv) 
    581581 
    582     CASE(energy) ! energy-conserving TRiSK 
     582    CASE(conserv_energy) ! energy-conserving TRiSK 
    583583 
    584584       DO l=ll_begin,ll_end 
     
    624624       ENDDO 
    625625 
    626     CASE(enstrophy) ! enstrophy-conserving TRiSK 
     626    CASE(conserv_enstrophy) ! enstrophy-conserving TRiSK 
    627627 
    628628       DO l=ll_begin,ll_end 
     
    705705    DO l = ll_begin, ll_end 
    706706       !  Compute mass fluxes 
    707        IF (caldyn_conserv==energy) CALL test_message(req_qu)  
     707       IF (caldyn_conserv==conserv_energy) CALL test_message(req_qu)  
    708708       !DIR$ SIMD 
    709709       DO ij=ij_begin_ext,ij_end_ext 
  • codes/icosagcm/devel/src/dynamics/caldyn_vars.f90

    r732 r733  
    66  SAVE 
    77 
    8   INTEGER, PARAMETER :: energy=1, enstrophy=2, caldyn_vert_noncons=1, caldyn_vert_cons=2, & 
     8  INTEGER, PARAMETER :: conserv_energy=1, conserv_enstrophy=2, & 
     9       kinetic_trisk=1, kinetic_consistent=2, & 
     10       caldyn_vert_noncons=1, caldyn_vert_cons=2, & 
    911       thermo_none=-99, thermo_theta=1, thermo_entropy=2, & 
    1012       thermo_moist=3, thermo_boussinesq=4, thermo_dry=10, thermo_fake_moist=11, thermo_moist_debug=100 
    1113 
    12   INTEGER :: caldyn_conserv, caldyn_thermo, caldyn_vert_variant, physics_thermo 
    13   !$OMP THREADPRIVATE(caldyn_conserv, caldyn_thermo, caldyn_vert_variant, physics_thermo) 
     14  INTEGER :: caldyn_conserv, caldyn_kinetic, caldyn_thermo, caldyn_vert_variant, physics_thermo 
     15  !$OMP THREADPRIVATE(caldyn_conserv, caldyn_kinetic, caldyn_thermo, caldyn_vert_variant, physics_thermo) 
    1416 
    1517  LOGICAL :: boussinesq, hydrostatic 
     
    2022 
    2123  ! temporary shared variables for caldyn 
    22   TYPE(t_field),POINTER :: f_qu(:), f_qv(:), f_pk(:),f_wwuu(:),f_planetvel(:), & 
     24  TYPE(t_field),POINTER :: f_qu(:), f_qv(:), f_Kv(:), & 
     25                           f_pk(:),f_wwuu(:),f_planetvel(:), & 
    2326                           f_Fel(:), f_gradPhi2(:), f_wil(:), f_Wetadot(:) 
    24  
    2527 
    2628  TYPE(t_message) :: req_ps, req_mass, req_theta_rhodz, req_u, req_qu, req_geopot, req_w 
Note: See TracChangeset for help on using the changeset viewer.