[906] | 1 | MODULE compute_diagnostics_mod |
---|
[952] | 2 | USE icosa |
---|
[906] | 3 | IMPLICIT NONE |
---|
| 4 | SAVE |
---|
[952] | 5 | PRIVATE |
---|
[906] | 6 | |
---|
[952] | 7 | ! fake array dimensions, for interfaces |
---|
| 8 | INTEGER, PARAMETER :: iim_jjm_i=1, iim_jjm_u=1, iim_jjm_v=1, llm_=1, llm1=1, nqdyn_=1 |
---|
| 9 | |
---|
[906] | 10 | INTERFACE |
---|
| 11 | |
---|
| 12 | SUBROUTINE comp_rhodz(flag,ps,rhodz) |
---|
[952] | 13 | IMPORT |
---|
[906] | 14 | LOGICAL, INTENT(IN) :: flag |
---|
[952] | 15 | REAL(rstd),INTENT(IN) :: ps(iim_jjm_i) |
---|
| 16 | REAL(rstd),INTENT(OUT) :: rhodz(iim_jjm_i,llm_) |
---|
[906] | 17 | END SUBROUTINE comp_rhodz |
---|
| 18 | |
---|
[913] | 19 | SUBROUTINE comp_pression(ps, p, offset) |
---|
[952] | 20 | IMPORT |
---|
[913] | 21 | INTEGER, INTENT(IN) :: offset |
---|
[952] | 22 | REAL(rstd), INTENT(IN) :: ps(iim_jjm_i) |
---|
| 23 | REAL(rstd), INTENT(OUT) :: p(iim_jjm_i,llm_) |
---|
[913] | 24 | END SUBROUTINE comp_pression |
---|
[952] | 25 | |
---|
| 26 | SUBROUTINE comp_temperature(pmid,q,temp) |
---|
| 27 | IMPORT |
---|
| 28 | REAL(rstd),INTENT(IN) :: pmid(iim_jjm_i, llm_) |
---|
| 29 | REAL(rstd),INTENT(IN) :: q(iim_jjm_i, llm_, nqdyn_) |
---|
| 30 | REAL(rstd),INTENT(INOUT) :: temp(iim_jjm_i, llm_) |
---|
| 31 | END SUBROUTINE comp_temperature |
---|
| 32 | |
---|
[955] | 33 | SUBROUTINE comp_hydro_press(rhodz, theta_rhodz, ps, p) |
---|
| 34 | IMPORT |
---|
| 35 | REAL(rstd),INTENT(IN) :: rhodz(iim_jjm_i, llm_) |
---|
| 36 | REAL(rstd),INTENT(IN) :: theta_rhodz(iim_jjm_i, llm_, nqdyn_) |
---|
| 37 | REAL(rstd),INTENT(OUT) :: ps(iim_jjm_i) |
---|
| 38 | REAL(rstd),INTENT(OUT) :: p(iim_jjm_i, llm_) |
---|
| 39 | END SUBROUTINE comp_hydro_press |
---|
| 40 | |
---|
[906] | 41 | END INTERFACE |
---|
| 42 | |
---|
[952] | 43 | PROCEDURE(comp_rhodz), POINTER :: compute_rhodz => NULL() |
---|
| 44 | PROCEDURE(comp_pression), POINTER :: compute_pression => NULL(), compute_pression_mid => NULL() |
---|
| 45 | PROCEDURE(comp_temperature), POINTER :: compute_temperature => NULL() |
---|
[955] | 46 | PROCEDURE(comp_hydro_press), POINTER :: compute_hydrostatic_pressure => NULL() |
---|
[906] | 47 | |
---|
[955] | 48 | PUBLIC :: compute_rhodz, compute_pression, compute_pression_mid, compute_temperature, compute_hydrostatic_pressure |
---|
[952] | 49 | |
---|
[906] | 50 | END MODULE compute_diagnostics_mod |
---|