[1403] | 1 | ! $Id: iniconst.F90 5128 2024-07-25 15:47:25Z abarral $ |
---|
[5099] | 2 | |
---|
[1625] | 3 | SUBROUTINE iniconst |
---|
[524] | 4 | |
---|
[1625] | 5 | USE control_mod |
---|
[5117] | 6 | USE IOIPSL |
---|
[2597] | 7 | USE comconst_mod, ONLY: im, imp1, jm, jmp1, lllm, lllmm1, lllmp1, & |
---|
[5118] | 8 | unsim, pi, r, kappa, cpp, dtvr, dtphys |
---|
[2600] | 9 | USE comvert_mod, ONLY: disvert_type, pressure_exner |
---|
[5118] | 10 | USE lmdz_iniprint, ONLY: lunout, prt_level |
---|
| 11 | |
---|
[5128] | 12 | |
---|
[1625] | 13 | IMPLICIT NONE |
---|
[5099] | 14 | |
---|
[1625] | 15 | ! P. Le Van |
---|
[5099] | 16 | |
---|
[1625] | 17 | ! Declarations: |
---|
| 18 | ! ------------- |
---|
[5099] | 19 | |
---|
[1625] | 20 | include "dimensions.h" |
---|
| 21 | include "paramet.h" |
---|
[524] | 22 | |
---|
[5118] | 23 | CHARACTER(LEN = *), parameter :: modname = "iniconst" |
---|
| 24 | CHARACTER(LEN = 80) :: abort_message |
---|
[5099] | 25 | |
---|
| 26 | |
---|
| 27 | |
---|
[1625] | 28 | !----------------------------------------------------------------------- |
---|
| 29 | ! dimension des boucles: |
---|
| 30 | ! ---------------------- |
---|
[524] | 31 | |
---|
[5118] | 32 | im = iim |
---|
| 33 | jm = jjm |
---|
| 34 | lllm = llm |
---|
| 35 | imp1 = iim |
---|
| 36 | jmp1 = jjm + 1 |
---|
| 37 | lllmm1 = llm - 1 |
---|
| 38 | lllmp1 = llm + 1 |
---|
[524] | 39 | |
---|
[1625] | 40 | !----------------------------------------------------------------------- |
---|
[524] | 41 | |
---|
[5118] | 42 | dtphys = iphysiq * dtvr |
---|
| 43 | unsim = 1. / iim |
---|
| 44 | pi = 2. * ASIN(1.) |
---|
[524] | 45 | |
---|
[1625] | 46 | !----------------------------------------------------------------------- |
---|
[524] | 47 | |
---|
[5118] | 48 | r = cpp * kappa |
---|
[524] | 49 | |
---|
[5118] | 50 | WRITE(lunout, *) trim(modname), ': R CP Kappa ', r, cpp, kappa |
---|
[5099] | 51 | |
---|
[1625] | 52 | !----------------------------------------------------------------------- |
---|
[524] | 53 | |
---|
[1625] | 54 | ! vertical discretization: default behavior depends on planet_type flag |
---|
[5117] | 55 | IF (planet_type=="earth") THEN |
---|
[5118] | 56 | disvert_type = 1 |
---|
[1625] | 57 | else |
---|
[5118] | 58 | disvert_type = 2 |
---|
[5117] | 59 | ENDIF |
---|
[1625] | 60 | ! but user can also specify using one or the other in run.def: |
---|
[5118] | 61 | CALL getin('disvert_type', disvert_type) |
---|
| 62 | WRITE(lunout, *) trim(modname), ': disvert_type=', disvert_type |
---|
[1520] | 63 | |
---|
[1625] | 64 | pressure_exner = disvert_type == 1 ! default value |
---|
[5101] | 65 | CALL getin('pressure_exner', pressure_exner) |
---|
[1625] | 66 | |
---|
[5117] | 67 | IF (disvert_type==1) THEN |
---|
[5118] | 68 | ! standard case for Earth (automatic generation of levels) |
---|
| 69 | CALL disvert() |
---|
[5117] | 70 | ELSE IF (disvert_type==2) THEN |
---|
[5118] | 71 | ! standard case for planets (levels generated using z2sig.def file) |
---|
| 72 | CALL disvert_noterre |
---|
[1625] | 73 | else |
---|
[5118] | 74 | WRITE(abort_message, *) "Wrong value for disvert_type: ", disvert_type |
---|
| 75 | CALL abort_gcm(modname, abort_message, 0) |
---|
[5117] | 76 | ENDIF |
---|
[1625] | 77 | |
---|
| 78 | END SUBROUTINE iniconst |
---|