- Timestamp:
- 2017-09-27T18:40:13+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedyn_adv_pra.F90
r8564 r8569 29 29 30 30 PUBLIC ice_dyn_adv_pra ! called by icedyn_adv 31 PUBLIC adv_pra_rst ! called by icedyn_adv 32 31 PUBLIC adv_pra_init ! called by icedyn_adv 32 33 ! Moments for advection 34 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sxopw, syopw, sxxopw, syyopw, sxyopw ! open water in sea ice 35 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxice, syice, sxxice, syyice, sxyice ! ice thickness 36 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxsn , sysn , sxxsn , syysn , sxysn ! snow thickness 37 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxa , sya , sxxa , syya , sxya ! lead fraction 38 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxc0 , syc0 , sxxc0 , syyc0 , sxyc0 ! snow thermal content 39 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxsal, sysal, sxxsal, syysal, sxysal ! ice salinity 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxage, syage, sxxage, syyage, sxyage ! ice age 41 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxap , syap , sxxap , syyap , sxyap ! melt pond fraction 42 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxvp , syvp , sxxvp , syyvp , sxyvp ! melt pond volume 43 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: sxe , sye , sxxe , syye , sxye ! ice layers heat content 44 ! 33 45 !! * Substitutions 34 46 # include "vectopt_loop_substitute.h90" … … 246 258 DEALLOCATE( zarea , z0opw , z0ice, z0snw , z0ai , z0es , z0smi , z0oi , z0ap , z0vp , z0ei ) 247 259 ! 260 IF( lrst_ice ) CALL adv_pra_rst( 'WRITE', kt ) !* write Prather fields in the restart file 261 ! 248 262 END SUBROUTINE ice_dyn_adv_pra 249 263 … … 594 608 END SUBROUTINE adv_y 595 609 610 SUBROUTINE adv_pra_init 611 !!------------------------------------------------------------------- 612 !! *** ROUTINE adv_pra_init *** 613 !! 614 !! ** Purpose : allocate and initialize arrays for Prather advection 615 !!------------------------------------------------------------------- 616 INTEGER :: ierr 617 !!------------------------------------------------------------------- 618 ALLOCATE( sxopw(jpi,jpj) , syopw(jpi,jpj) , sxxopw(jpi,jpj) , syyopw(jpi,jpj) , sxyopw(jpi,jpj) , & 619 & sxice(jpi,jpj,jpl) , syice(jpi,jpj,jpl) , sxxice(jpi,jpj,jpl) , syyice(jpi,jpj,jpl) , sxyice(jpi,jpj,jpl) , & 620 & sxsn (jpi,jpj,jpl) , sysn (jpi,jpj,jpl) , sxxsn (jpi,jpj,jpl) , syysn (jpi,jpj,jpl) , sxysn (jpi,jpj,jpl) , & 621 & sxa (jpi,jpj,jpl) , sya (jpi,jpj,jpl) , sxxa (jpi,jpj,jpl) , syya (jpi,jpj,jpl) , sxya (jpi,jpj,jpl) , & 622 & sxc0 (jpi,jpj,jpl) , syc0 (jpi,jpj,jpl) , sxxc0 (jpi,jpj,jpl) , syyc0 (jpi,jpj,jpl) , sxyc0 (jpi,jpj,jpl) , & 623 & sxsal(jpi,jpj,jpl) , sysal(jpi,jpj,jpl) , sxxsal(jpi,jpj,jpl) , syysal(jpi,jpj,jpl) , sxysal(jpi,jpj,jpl) , & 624 & sxage(jpi,jpj,jpl) , syage(jpi,jpj,jpl) , sxxage(jpi,jpj,jpl) , syyage(jpi,jpj,jpl) , sxyage(jpi,jpj,jpl) , & 625 & sxap(jpi,jpj,jpl) , syap (jpi,jpj,jpl) , sxxap (jpi,jpj,jpl) , syyap (jpi,jpj,jpl) , sxyap (jpi,jpj,jpl) , & 626 & sxvp(jpi,jpj,jpl) , syvp (jpi,jpj,jpl) , sxxvp (jpi,jpj,jpl) , syyvp (jpi,jpj,jpl) , sxyvp (jpi,jpj,jpl) , & 627 & sxe (jpi,jpj,nlay_i,jpl) , sye (jpi,jpj,nlay_i,jpl) , sxxe(jpi,jpj,nlay_i,jpl) , & 628 & syye(jpi,jpj,nlay_i,jpl) , sxye(jpi,jpj,nlay_i,jpl) , & 629 & STAT = ierr ) 630 ! 631 IF( lk_mpp ) CALL mpp_sum( ierr ) 632 IF( ierr /= 0 ) CALL ctl_stop('STOP', 'adv_pra_init : unable to allocate ice arrays for Prather advection scheme') 633 ! 634 CALL adv_pra_rst( 'READ' ) !* read or initialize all required files 635 ! 636 END SUBROUTINE adv_pra_init 637 596 638 SUBROUTINE adv_pra_rst( cdrw, kt ) 597 639 !!--------------------------------------------------------------------- … … 713 755 sxyage(:,:,jl)= z2d(:,:) 714 756 END DO 715 ! MV MP 2016716 757 IF ( nn_pnd_scheme > 0 ) THEN 717 758 DO jl = 1, jpl … … 750 791 END DO 751 792 ENDIF 752 ! END MV MP 2016753 793 754 794 CALL iom_get( numrir, jpdom_autoglo, 'sxopw ' , sxopw ) … … 793 833 syyc0 (:,:,:) = 0._wp ; syye (:,:,:,:) = 0._wp ; syysal (:,:,:) = 0._wp ; syyage (:,:,:) = 0._wp 794 834 sxyc0 (:,:,:) = 0._wp ; sxye (:,:,:,:) = 0._wp ; sxysal (:,:,:) = 0._wp ; sxyage (:,:,:) = 0._wp 795 ! MV MP 2016796 835 IF ( nn_pnd_scheme > 0 ) THEN 797 836 sxap (:,:,:) = 0._wp ; sxvp (:,:,:) = 0._wp … … 801 840 sxyap (:,:,:) = 0._wp ; sxyvp (:,:,:) = 0._wp 802 841 ENDIF 803 ! END MV MP 2016804 842 ENDIF 805 843 ELSE !* Start from rest … … 816 854 syyc0 (:,:,:) = 0._wp ; syye (:,:,:,:) = 0._wp ; syysal (:,:,:) = 0._wp ; syyage (:,:,:) = 0._wp 817 855 sxyc0 (:,:,:) = 0._wp ; sxye (:,:,:,:) = 0._wp ; sxysal (:,:,:) = 0._wp ; sxyage (:,:,:) = 0._wp 818 ! MV MP 2016819 856 IF ( nn_pnd_scheme > 0 ) THEN 820 857 sxap (:,:,:) = 0._wp ; sxvp (:,:,:) = 0._wp … … 824 861 sxyap (:,:,:) = 0._wp ; sxyvp (:,:,:) = 0._wp 825 862 ENDIF 826 ! END MV MP 2016827 863 ENDIF 828 864 ! … … 953 989 END DO 954 990 END DO 955 ! MV MP 2016956 991 IF ( nn_pnd_scheme > 0 ) THEN 957 992 DO jl = 1, jpl
Note: See TracChangeset
for help on using the changeset viewer.