- Timestamp:
- 07/05/19 15:13:09 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/dynamics/compute_caldyn_Coriolis.F90
r939 r940 1 1 MODULE compute_caldyn_Coriolis_mod 2 2 USE prec, ONLY : rstd 3 USE caldyn_vars_mod, ONLY : caldyn_conserv, conserv_energy, conserv_enstrophy, conserv_gassmann 3 4 USE grid_param 4 5 USE earth_const … … 46 47 END_BLOCK 47 48 END_BLOCK 48 ! 49 FORALL_CELLS() 50 ON_EDGES 51 du_trisk=0. 52 FORALL_TRISK 53 du_trisk = du_trisk + WEE*hflux(EDGE_TRISK)*(qu(EDGE)+qu(EDGE_TRISK)) 54 END_BLOCK 55 du(EDGE) = du(EDGE) + .5*du_trisk 56 END_BLOCK 57 END_BLOCK 58 49 ! 50 SELECT CASE(caldyn_conserv) 51 CASE(conserv_energy) ! energy-conserving TRiSK 52 FORALL_CELLS() 53 ON_EDGES 54 du_trisk=0. 55 FORALL_TRISK 56 du_trisk = du_trisk + WEE*hflux(EDGE_TRISK)*(qu(EDGE)+qu(EDGE_TRISK)) 57 END_BLOCK 58 du(EDGE) = du(EDGE) + .5*du_trisk 59 END_BLOCK 60 END_BLOCK 61 CASE(conserv_enstrophy) ! enstrophy-conserving TRiSK 62 FORALL_CELLS() 63 ON_EDGES 64 du_trisk=0. 65 FORALL_TRISK 66 du_trisk = du_trisk + WEE*hflux(EDGE_TRISK) 67 END_BLOCK 68 du(EDGE) = du(EDGE) + du_trisk*qu(EDGE) 69 END_BLOCK 70 END_BLOCK 71 END SELECT 59 72 END_BLOCK 60 73 … … 65 78 USE data_unstructured_mod, ONLY : enter_trace, exit_trace, & 66 79 id_coriolis, left, right, primal_deg, primal_edge, primal_ne, & 67 trisk_deg, trisk , wee ! FIXME wee80 trisk_deg, trisk 68 81 69 82 FIELD_U :: hflux, Ftheta, qu, du ! IN, BUF, IN, INOUT … … 80 93 SUBROUTINE compute_caldyn_Coriolis_hex(hflux,theta,qu, Ftheta, convm,dtheta_rhodz,du) 81 94 USE icosa 82 USE caldyn_vars_mod83 95 REAL(rstd),INTENT(IN) :: hflux(3*iim*jjm,llm) ! hflux in kg/s 84 96 REAL(rstd),INTENT(IN) :: theta(iim*jjm,llm,nqdyn) ! active scalars
Note: See TracChangeset
for help on using the changeset viewer.