Changeset 625
- Timestamp:
- 12/08/17 15:10:22 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/Python/src/kernels_caldyn_hevi.jin
r615 r625 1 KERNEL(caldyn_ vert)1 KERNEL(caldyn_wflux) 2 2 SEQUENCE 3 3 BODY('llm-1,1,-1') … … 13 13 END_BLOCK 14 14 END_BLOCK 15 16 15 ! make sure wflux is up to date 17 16 BARRIER 18 19 FORALL_CELLS('2','llm') 20 ON_EDGES 21 wwuu(EDGE) = .5*(wflux(CELL1)+wflux(CELL2))*(u(EDGE)-u(DOWN(EDGE))) 22 END_BLOCK 23 END_BLOCK 24 25 ! make sure wwuu is up to date 26 BARRIER 27 17 END_BLOCK 18 19 KERNEL(caldyn_dmass) 28 20 FORALL_CELLS() 29 21 ON_PRIMAL 30 convm(CELL) = mass_dbk(CELL) * dmass_col(HIDX(CELL)) ! FIXME : we shoud prognose mass_col31 END_BLOCK 32 ON_EDGES33 du(EDGE) = du(EDGE) - (wwuu(EDGE)+wwuu(UP(EDGE))) / (rhodz(CELL1)+rhodz(CELL2)) 34 END_BLOCK 35 END_BLOCK 22 convm(CELL) = mass_dbk(CELL) * dmass_col(HIDX(CELL)) 23 END_BLOCK 24 END_BLOCK 25 END_BLOCK 26 27 KERNEL(caldyn_vert) 36 28 37 29 DO iq=1,nqdyn … … 47 39 END_BLOCK 48 40 END DO 41 42 IF(caldyn_vert_variant == caldyn_vert_cons) THEN 43 ! conservative vertical transport of momentum : (F/m)du/deta = 1/m (d/deta(Fu)-u.dF/deta) 44 FORALL_CELLS('2','llm') 45 ON_EDGES 46 wwuu(EDGE) = .25*(wflux(CELL1)+wflux(CELL2))*(u(EDGE)+u(DOWN(EDGE))) ! Fu 47 END_BLOCK 48 END_BLOCK 49 ! make sure wwuu is up to date 50 BARRIER 51 52 FORALL_CELLS() 53 ON_EDGES 54 dFu_deta = wwuu(UP(EDGE))-wwuu(EDGE) ! d/deta (F*u) 55 dF_deta = .5*(wflux(UP(CELL1))+wflux(UP(CELL2))-(wflux(CELL1)+wflux(CELL2))) ! d/deta(F) 56 du(EDGE) = du(EDGE) - (dFu_deta-u(EDGE)*dF_deta) / (.5*(rhodz(CELL1)+rhodz(CELL2))) ! (F/m)du/deta 57 END_BLOCK 58 END_BLOCK 59 ELSE 60 FORALL_CELLS('2','llm') 61 ON_EDGES 62 wwuu(EDGE) = .5*(wflux(CELL1)+wflux(CELL2))*(u(EDGE)-u(DOWN(EDGE))) 63 END_BLOCK 64 END_BLOCK 65 66 ! make sure wwuu is up to date 67 BARRIER 68 69 FORALL_CELLS() 70 ON_EDGES 71 du(EDGE) = du(EDGE) - (wwuu(EDGE)+wwuu(UP(EDGE))) / (rhodz(CELL1)+rhodz(CELL2)) 72 END_BLOCK 73 END_BLOCK 74 END IF 75 49 76 END_BLOCK 50 77
Note: See TracChangeset
for help on using the changeset viewer.