123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- MODULE trc
-
-
-
-
-
-
-
-
- #if defined key_top
-
-
-
- USE par_oce
- USE par_trc
-
- IMPLICIT NONE
- PUBLIC
- PUBLIC trc_alloc
-
-
- INTEGER, PUBLIC :: numnat_ref = -1
- INTEGER, PUBLIC :: numnat_cfg = -1
- INTEGER, PUBLIC :: numont = -1
- INTEGER, PUBLIC :: numstr
- INTEGER, PUBLIC :: numrtr
- INTEGER, PUBLIC :: numrtw
-
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: trai
- REAL(wp), PUBLIC :: areatot
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: cvol
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trn
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tra
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trb
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: sbc_trc_b
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: sbc_trc
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: trc_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: trc_o
- INTEGER , PUBLIC :: nn_ice_tr
-
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gtru
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gtrv
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gtrui
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gtrvi
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr_mean
-
-
-
- LOGICAL , PUBLIC :: ln_rsttr
- LOGICAL , PUBLIC :: lrst_trc
- INTEGER , PUBLIC :: nn_writetrc
- INTEGER , PUBLIC :: nutwrs
- INTEGER , PUBLIC :: nutrst
- INTEGER , PUBLIC :: nn_rsttr
- CHARACTER(lc) , PUBLIC :: cn_trcrst_in
- CHARACTER(lc), PUBLIC :: cn_trcrst_indir
- CHARACTER(lc) , PUBLIC :: cn_trcrst_out
- CHARACTER(lc), PUBLIC :: cn_trcrst_outdir
- REAL(wp) , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: rdttrc
- LOGICAL , PUBLIC :: ln_top_euler
- LOGICAL , PUBLIC :: ln_trcdta
- LOGICAL , PUBLIC :: ln_trcdmp
- LOGICAL , PUBLIC :: ln_trcdmp_clo
- INTEGER , PUBLIC :: nittrc000
- LOGICAL , PUBLIC :: l_trcdm2dc
-
-
- TYPE TRC_I_NML
- REAL(wp) :: trc_ratio
- REAL(wp) :: trc_prescr
- CHARACTER(len=2) :: ctrc_o
- END TYPE
- REAL(wp), DIMENSION(jptra), PUBLIC :: trc_ice_ratio, &
- trc_ice_prescr
- CHARACTER(len=2), DIMENSION(jptra), PUBLIC :: cn_trc_o
-
-
- TYPE, PUBLIC :: PTRACER
- CHARACTER(lc) :: clsname
- CHARACTER(lc) :: cllname
- CHARACTER(lc) :: clunit
- LOGICAL :: llinit
- LOGICAL :: llsave
- END TYPE PTRACER
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrcnm
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrcln
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrcun
- LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_wri
- TYPE, PUBLIC :: DIAG
- CHARACTER(lc) :: sname
- CHARACTER(lc) :: lname
- CHARACTER(lc) :: units
- END TYPE DIAG
-
-
- LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_ini
- LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_obc
- LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_sbc
- LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_cbc
-
-
- REAL(wp) , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:, :) :: trc2d
- REAL(wp) , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trc3d
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrc2d
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrc2l
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrc2u
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrc3d
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrc3l
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrc3u
- LOGICAL , PUBLIC :: ln_diatrc
- INTEGER , PUBLIC :: nn_writedia
-
-
- LOGICAL , PUBLIC :: ln_diabio
- INTEGER , PUBLIC :: nn_writebio
- REAL(wp) , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trbio
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrbio
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrbil
- CHARACTER(lc), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrbiu
-
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: un_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vn_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsn_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rhop_tm
- # if defined key_zdfddm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_tm
- # endif
- #if defined key_ldfslp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpj_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vslp_tm
- #endif
- #if defined key_trabbl
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahv_bbl_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: utr_bbl_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vtr_bbl_tm
- #endif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshn_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshb_hold
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: h_rnf_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fr_i_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fmmflx_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_b_hold
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr_tm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wndm_tm
-
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsn_temp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: un_temp,vn_temp,wn_temp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_temp, rhop_temp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshn_temp, sshb_temp, ssha_temp, rnf_temp,h_rnf_temp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivn_temp, rotn_temp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivb_temp, rotb_temp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_temp, qsr_temp, fr_i_temp,wndm_temp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_temp, fmmflx_temp, emp_b_temp
-
- #if defined key_trabbl
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_temp, ahv_bbl_temp, utr_bbl_temp, vtr_bbl_temp
- #endif
-
- #if defined key_ldfslp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_temp, wslpj_temp, uslp_temp, vslp_temp
- #endif
-
- # if defined key_zdfddm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_temp
- # endif
-
-
-
-
-
-
- CONTAINS
- INTEGER FUNCTION trc_alloc()
-
-
-
- USE lib_mpp, ONLY: ctl_warn
-
-
- ALLOCATE( trn(jpi,jpj,jpk,jptra), trb(jpi,jpj,jpk,jptra), tra(jpi,jpj,jpk,jptra), &
- & trc_i(jpi,jpj,jptra) , trc_o(jpi,jpj,jptra) , &
- & gtru (jpi,jpj,jptra) , gtrv (jpi,jpj,jptra) , &
- & gtrui(jpi,jpj,jptra) , gtrvi(jpi,jpj,jptra) , &
- & sbc_trc_b(jpi,jpj,jptra), sbc_trc(jpi,jpj,jptra) , &
- & cvol(jpi,jpj,jpk) , rdttrc(jpk) , trai(jptra) , &
- & ctrcnm(jptra) , ctrcln(jptra) , ctrcun(jptra) , &
- & ln_trc_ini(jptra) , ln_trc_wri(jptra) , qsr_mean(jpi,jpj) , STAT = trc_alloc )
- IF( trc_alloc /= 0 ) CALL ctl_warn('trc_alloc: failed to allocate arrays')
-
- END FUNCTION trc_alloc
- #else
-
-
-
- #endif
-
- END MODULE trc
|