123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- MODULE ice_2
-
-
-
-
-
-
-
-
- #if defined key_lim2
-
-
-
- USE par_ice_2
- IMPLICIT NONE
- PRIVATE
-
- PUBLIC ice_alloc_2
- INTEGER , PUBLIC :: numit
- REAL(wp), PUBLIC :: rdt_ice
-
- CHARACTER(len=32) , PUBLIC :: cn_icerst_in
- CHARACTER(len=256) , PUBLIC :: cn_icerst_indir
- CHARACTER(len=32) , PUBLIC :: cn_icerst_out
- CHARACTER(len=256) , PUBLIC :: cn_icerst_outdir
- LOGICAL , PUBLIC :: ln_limdyn
- LOGICAL , PUBLIC :: ln_limdmp
- REAL(wp) , PUBLIC :: hsndif
- REAL(wp) , PUBLIC :: hicdif
- REAL(wp), DIMENSION(2), PUBLIC :: acrit
-
- LOGICAL , PUBLIC :: ln_nicep = .TRUE.
-
- INTEGER , PUBLIC :: nbiter
- INTEGER , PUBLIC :: nbitdr
- INTEGER , PUBLIC :: nn_nevp
- INTEGER , PUBLIC :: telast
- REAL(wp), PUBLIC :: epsd
- REAL(wp), PUBLIC :: alpha
- REAL(wp), PUBLIC :: dm
- REAL(wp), PUBLIC :: om
- REAL(wp), PUBLIC :: resl
- REAL(wp), PUBLIC :: cw
- REAL(wp), PUBLIC :: angvg
- REAL(wp), PUBLIC :: pstar
- REAL(wp), PUBLIC :: c_rhg
- REAL(wp), PUBLIC :: etamn
- REAL(wp), PUBLIC :: rn_creepl
- REAL(wp), PUBLIC :: rn_ecc
- REAL(wp), PUBLIC :: ahi0
- REAL(wp), PUBLIC :: alphaevp
- REAL(wp), PUBLIC :: usecc2
- REAL(wp), PUBLIC :: rhoco
- REAL(wp), PUBLIC :: sangvg, cangvg
- REAL(wp), PUBLIC :: pstarh
-
- REAL(wp), PUBLIC :: rswitch
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahiu , ahiv
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: pahu , pahv
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ust2s
-
- # if defined key_lim2_vp
-
- LOGICAL , PUBLIC :: lk_lim2_vp = .TRUE.
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hsnm , hicm
-
- # else
-
- LOGICAL , PUBLIC:: lk_lim2_vp = .FALSE.
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: stress1_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: stress2_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: stress12_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: delta_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: divu_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: shear_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: at_i
-
- REAL(wp), PUBLIC, DIMENSION(:,:) , POINTER :: vt_s ,vt_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:), TARGET :: hsnm , hicm
- #endif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdvosif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdvobif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fdvolif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdvonif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sist
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tfu
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hicif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hsnif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hicifp
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: frld
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: phicif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: pfrld
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qstoif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fbif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdm_snw
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdq_snw
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdm_ice
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdq_ice
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qldif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qcmif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fdtcn
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qdtcn
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thcm
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fstric_mean
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fstric
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ffltbif
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fscmbq
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsbbq
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qfvbq
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: dmgwi
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_ice, v_ice
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_oce, v_oce
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tbif
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxice, syice, sxxice, syyice, sxyice
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxsn, sysn, sxxsn, syysn, sxysn
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxa, sya, sxxa, syya, sxya
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxc0, syc0, sxxc0, syyc0, sxyc0
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxc1, syc1, sxxc1, syyc1, sxyc1
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxc2, syc2, sxxc2, syyc2, sxyc2
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxst, syst, sxxst, syyst, sxyst
-
- CONTAINS
- INTEGER FUNCTION ice_alloc_2()
-
-
-
- USE lib_mpp, ONLY: ctl_warn
- INTEGER :: ierr(9)
-
- ierr(:) = 0
-
- ALLOCATE( ahiu(jpi,jpj) , pahu(jpi,jpj) , &
- & ahiv(jpi,jpj) , pahv(jpi,jpj) , ust2s(jpi,jpj) , STAT=ierr(1) )
-
-
- #if defined key_lim2_vp
- ALLOCATE( hsnm(jpi,jpj) , hicm(jpi,jpj) , STAT=ierr(2) )
- #else
- ALLOCATE( stress1_i (jpi,jpj) , delta_i(jpi,jpj) , at_i(jpi,jpj) , &
- stress2_i (jpi,jpj) , divu_i (jpi,jpj) , hsnm(jpi,jpj) , &
- stress12_i(jpi,jpj) , shear_i(jpi,jpj) , hicm(jpi,jpj) , STAT=ierr(2) )
- #endif
- ALLOCATE( rdvosif(jpi,jpj) , rdvobif(jpi,jpj) , &
- & fdvolif(jpi,jpj) , rdvonif(jpi,jpj) , &
- & sist (jpi,jpj) , tfu (jpi,jpj) , hicif(jpi,jpj) , &
- & hsnif (jpi,jpj) , hicifp (jpi,jpj) , frld (jpi,jpj) , STAT=ierr(3) )
- ALLOCATE(phicif(jpi,jpj) , pfrld (jpi,jpj) , qstoif (jpi,jpj) , &
- & fbif (jpi,jpj) , rdm_snw(jpi,jpj) , rdq_snw(jpi,jpj) , &
- & rdm_ice(jpi,jpj) , rdq_ice(jpi,jpj) , &
- & qldif (jpi,jpj) , qcmif (jpi,jpj) , fdtcn (jpi,jpj) , &
- & qdtcn (jpi,jpj) , thcm (jpi,jpj) , STAT=ierr(4) )
- ALLOCATE(fstric(jpi,jpj) , ffltbif(jpi,jpj) , fscmbq(jpi,jpj) , &
- & fsbbq (jpi,jpj) , qfvbq (jpi,jpj) , dmgwi (jpi,jpj) , &
- & u_ice (jpi,jpj) , v_ice (jpi,jpj) , &
- & u_oce (jpi,jpj) , v_oce (jpi,jpj) , &
- & tbif (jpi,jpj,jplayersp1) , STAT=ierr(5))
-
- ALLOCATE(sxice (jpi,jpj) , syice (jpi,jpj) , sxxice(jpi,jpj) , &
- & syyice(jpi,jpj) , sxyice(jpi,jpj) , &
- & sxsn (jpi,jpj) , sysn (jpi,jpj) , sxxsn (jpi,jpj) , &
- & syysn (jpi,jpj) , sxysn (jpi,jpj) , STAT=ierr(6) )
- ALLOCATE(sxa (jpi,jpj) , sya (jpi,jpj) , sxxa (jpi,jpj) , &
- & syya (jpi,jpj) , sxya (jpi,jpj) , &
- & sxc0 (jpi,jpj) , syc0 (jpi,jpj) , sxxc0 (jpi,jpj) , &
- & syyc0 (jpi,jpj) , sxyc0 (jpi,jpj) , STAT=ierr(7))
- ALLOCATE(sxc1 (jpi,jpj) , syc1 (jpi,jpj) , sxxc1 (jpi,jpj) , &
- & syyc1 (jpi,jpj) , sxyc1 (jpi,jpj) , &
- & sxc2 (jpi,jpj) , syc2 (jpi,jpj) , sxxc2 (jpi,jpj) , &
- & syyc2 (jpi,jpj) , sxyc2 (jpi,jpj) , STAT=ierr(8))
- ALLOCATE(sxst (jpi,jpj) , syst (jpi,jpj) , sxxst (jpi,jpj) , &
- & syyst (jpi,jpj) , sxyst (jpi,jpj) , STAT=ierr(9))
-
- ice_alloc_2 = MAXVAL( ierr )
-
- IF( ice_alloc_2 /= 0 ) CALL ctl_warn('ice_alloc_2: failed to allocate arrays')
-
- END FUNCTION ice_alloc_2
- #else
-
-
-
- #endif
-
-
-
-
-
- END MODULE ice_2
|