- Timestamp:
- 2020-05-20T18:53:27+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedyn_adv_pra.F90
r12489 r12957 770 770 ! 771 771 IF( id1 > 0 ) THEN !** Read the restart file **! 772 IF(lrxios) CALL iom_swap(crixios_context) 772 773 ! 773 774 ! ! ice thickness 774 CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice )775 CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice )776 CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice )777 CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice )778 CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice )775 CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice, ldxios = lrxios ) 776 CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice, ldxios = lrxios ) 777 CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice, ldxios = lrxios ) 778 CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice, ldxios = lrxios ) 779 CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice, ldxios = lrxios ) 779 780 ! ! snow thickness 780 CALL iom_get( numrir, jpdom_autoglo, 'sxsn' , sxsn )781 CALL iom_get( numrir, jpdom_autoglo, 'sysn' , sysn )782 CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn )783 CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn )784 CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn )781 CALL iom_get( numrir, jpdom_autoglo, 'sxsn' , sxsn, ldxios = lrxios ) 782 CALL iom_get( numrir, jpdom_autoglo, 'sysn' , sysn, ldxios = lrxios ) 783 CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn, ldxios = lrxios ) 784 CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn, ldxios = lrxios ) 785 CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn, ldxios = lrxios ) 785 786 ! ! ice concentration 786 CALL iom_get( numrir, jpdom_autoglo, 'sxa' , sxa )787 CALL iom_get( numrir, jpdom_autoglo, 'sya' , sya )788 CALL iom_get( numrir, jpdom_autoglo, 'sxxa' , sxxa )789 CALL iom_get( numrir, jpdom_autoglo, 'syya' , syya )790 CALL iom_get( numrir, jpdom_autoglo, 'sxya' , sxya )787 CALL iom_get( numrir, jpdom_autoglo, 'sxa' , sxa, ldxios = lrxios ) 788 CALL iom_get( numrir, jpdom_autoglo, 'sya' , sya, ldxios = lrxios ) 789 CALL iom_get( numrir, jpdom_autoglo, 'sxxa' , sxxa, ldxios = lrxios ) 790 CALL iom_get( numrir, jpdom_autoglo, 'syya' , syya, ldxios = lrxios ) 791 CALL iom_get( numrir, jpdom_autoglo, 'sxya' , sxya, ldxios = lrxios ) 791 792 ! ! ice salinity 792 CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal )793 CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal )794 CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal )795 CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal )796 CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal )793 CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal, ldxios = lrxios ) 794 CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal, ldxios = lrxios ) 795 CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal, ldxios = lrxios ) 796 CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal, ldxios = lrxios ) 797 CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal, ldxios = lrxios ) 797 798 ! ! ice age 798 CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage )799 CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage )800 CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage )801 CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage )802 CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage )799 CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage, ldxios = lrxios ) 800 CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage, ldxios = lrxios ) 801 CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage, ldxios = lrxios ) 802 CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage, ldxios = lrxios ) 803 CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage, ldxios = lrxios ) 803 804 ! ! snow layers heat content 804 805 DO jk = 1, nlay_s 805 806 WRITE(zchar1,'(I2.2)') jk 806 znam = 'sxc0'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; sxc0 (:,:,jk,:) = z3d(:,:,:) 807 znam = 'syc0'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; syc0 (:,:,jk,:) = z3d(:,:,:) 808 znam = 'sxxc0'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; sxxc0(:,:,jk,:) = z3d(:,:,:) 809 znam = 'syyc0'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; syyc0(:,:,jk,:) = z3d(:,:,:) 810 znam = 'sxyc0'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; sxyc0(:,:,jk,:) = z3d(:,:,:) 807 znam = 'sxc0'//'_l'//zchar1 808 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; sxc0 (:,:,jk,:) = z3d(:,:,:) 809 znam = 'syc0'//'_l'//zchar1 810 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; syc0 (:,:,jk,:) = z3d(:,:,:) 811 znam = 'sxxc0'//'_l'//zchar1 812 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; sxxc0(:,:,jk,:) = z3d(:,:,:) 813 znam = 'syyc0'//'_l'//zchar1 814 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; syyc0(:,:,jk,:) = z3d(:,:,:) 815 znam = 'sxyc0'//'_l'//zchar1 816 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; sxyc0(:,:,jk,:) = z3d(:,:,:) 811 817 END DO 812 818 ! ! ice layers heat content 813 819 DO jk = 1, nlay_i 814 820 WRITE(zchar1,'(I2.2)') jk 815 znam = 'sxe'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; sxe (:,:,jk,:) = z3d(:,:,:) 816 znam = 'sye'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; sye (:,:,jk,:) = z3d(:,:,:) 817 znam = 'sxxe'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; sxxe(:,:,jk,:) = z3d(:,:,:) 818 znam = 'syye'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; syye(:,:,jk,:) = z3d(:,:,:) 819 znam = 'sxye'//'_l'//zchar1 ; CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) ; sxye(:,:,jk,:) = z3d(:,:,:) 821 znam = 'sxe'//'_l'//zchar1 822 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; sxe (:,:,jk,:) = z3d(:,:,:) 823 znam = 'sye'//'_l'//zchar1 824 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; sye (:,:,jk,:) = z3d(:,:,:) 825 znam = 'sxxe'//'_l'//zchar1 826 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; sxxe(:,:,jk,:) = z3d(:,:,:) 827 znam = 'syye'//'_l'//zchar1 828 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; syye(:,:,jk,:) = z3d(:,:,:) 829 znam = 'sxye'//'_l'//zchar1 830 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) ; sxye(:,:,jk,:) = z3d(:,:,:) 820 831 END DO 821 832 ! 822 833 IF( ln_pnd_H12 ) THEN ! melt pond fraction 823 CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap 824 CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap 825 CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap )826 CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap )827 CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap )834 CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap, ldxios = lrxios ) 835 CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap, ldxios = lrxios ) 836 CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap, ldxios = lrxios ) 837 CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap, ldxios = lrxios ) 838 CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap, ldxios = lrxios ) 828 839 ! ! melt pond volume 829 CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp 830 CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp 831 CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp )832 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp )833 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp )840 CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp, ldxios = lrxios ) 841 CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp, ldxios = lrxios ) 842 CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp, ldxios = lrxios ) 843 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp, ldxios = lrxios ) 844 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp, ldxios = lrxios ) 834 845 ENDIF 846 IF(lrxios) CALL iom_swap(cxios_context) 835 847 ! 836 848 ELSE !** start rheology from rest **! … … 862 874 ! 863 875 ! ! ice thickness 864 CALL iom_rstput( iter, nitrst, numriw, 'sxice' , sxice ) 865 CALL iom_rstput( iter, nitrst, numriw, 'syice' , syice ) 866 CALL iom_rstput( iter, nitrst, numriw, 'sxxice', sxxice ) 867 CALL iom_rstput( iter, nitrst, numriw, 'syyice', syyice ) 868 CALL iom_rstput( iter, nitrst, numriw, 'sxyice', sxyice ) 876 IF( lwxios ) CALL iom_swap( cwixios_context ) 877 CALL iom_rstput( iter, nitrst, numriw, 'sxice' , sxice, ldxios = lwxios) 878 CALL iom_rstput( iter, nitrst, numriw, 'syice' , syice, ldxios = lwxios) 879 CALL iom_rstput( iter, nitrst, numriw, 'sxxice', sxxice, ldxios = lwxios) 880 CALL iom_rstput( iter, nitrst, numriw, 'syyice', syyice, ldxios = lwxios) 881 CALL iom_rstput( iter, nitrst, numriw, 'sxyice', sxyice, ldxios = lwxios) 869 882 ! ! snow thickness 870 CALL iom_rstput( iter, nitrst, numriw, 'sxsn' , sxsn 871 CALL iom_rstput( iter, nitrst, numriw, 'sysn' , sysn 872 CALL iom_rstput( iter, nitrst, numriw, 'sxxsn' , sxxsn 873 CALL iom_rstput( iter, nitrst, numriw, 'syysn' , syysn 874 CALL iom_rstput( iter, nitrst, numriw, 'sxysn' , sxysn 883 CALL iom_rstput( iter, nitrst, numriw, 'sxsn' , sxsn, ldxios = lwxios ) 884 CALL iom_rstput( iter, nitrst, numriw, 'sysn' , sysn, ldxios = lwxios ) 885 CALL iom_rstput( iter, nitrst, numriw, 'sxxsn' , sxxsn, ldxios = lwxios ) 886 CALL iom_rstput( iter, nitrst, numriw, 'syysn' , syysn, ldxios = lwxios ) 887 CALL iom_rstput( iter, nitrst, numriw, 'sxysn' , sxysn, ldxios = lwxios ) 875 888 ! ! ice concentration 876 CALL iom_rstput( iter, nitrst, numriw, 'sxa' , sxa 877 CALL iom_rstput( iter, nitrst, numriw, 'sya' , sya 878 CALL iom_rstput( iter, nitrst, numriw, 'sxxa' , sxxa 879 CALL iom_rstput( iter, nitrst, numriw, 'syya' , syya 880 CALL iom_rstput( iter, nitrst, numriw, 'sxya' , sxya 889 CALL iom_rstput( iter, nitrst, numriw, 'sxa' , sxa, ldxios = lwxios ) 890 CALL iom_rstput( iter, nitrst, numriw, 'sya' , sya, ldxios = lwxios ) 891 CALL iom_rstput( iter, nitrst, numriw, 'sxxa' , sxxa, ldxios = lwxios ) 892 CALL iom_rstput( iter, nitrst, numriw, 'syya' , syya, ldxios = lwxios ) 893 CALL iom_rstput( iter, nitrst, numriw, 'sxya' , sxya, ldxios = lwxios ) 881 894 ! ! ice salinity 882 CALL iom_rstput( iter, nitrst, numriw, 'sxsal' , sxsal 883 CALL iom_rstput( iter, nitrst, numriw, 'sysal' , sysal 884 CALL iom_rstput( iter, nitrst, numriw, 'sxxsal', sxxsal 885 CALL iom_rstput( iter, nitrst, numriw, 'syysal', syysal 886 CALL iom_rstput( iter, nitrst, numriw, 'sxysal', sxysal 895 CALL iom_rstput( iter, nitrst, numriw, 'sxsal' , sxsal, ldxios = lwxios) 896 CALL iom_rstput( iter, nitrst, numriw, 'sysal' , sysal, ldxios = lwxios) 897 CALL iom_rstput( iter, nitrst, numriw, 'sxxsal', sxxsal, ldxios = lwxios) 898 CALL iom_rstput( iter, nitrst, numriw, 'syysal', syysal, ldxios = lwxios) 899 CALL iom_rstput( iter, nitrst, numriw, 'sxysal', sxysal, ldxios = lwxios) 887 900 ! ! ice age 888 CALL iom_rstput( iter, nitrst, numriw, 'sxage' , sxage 889 CALL iom_rstput( iter, nitrst, numriw, 'syage' , syage 890 CALL iom_rstput( iter, nitrst, numriw, 'sxxage', sxxage 891 CALL iom_rstput( iter, nitrst, numriw, 'syyage', syyage 892 CALL iom_rstput( iter, nitrst, numriw, 'sxyage', sxyage 901 CALL iom_rstput( iter, nitrst, numriw, 'sxage' , sxage, ldxios = lwxios) 902 CALL iom_rstput( iter, nitrst, numriw, 'syage' , syage, ldxios = lwxios) 903 CALL iom_rstput( iter, nitrst, numriw, 'sxxage', sxxage, ldxios = lwxios) 904 CALL iom_rstput( iter, nitrst, numriw, 'syyage', syyage, ldxios = lwxios) 905 CALL iom_rstput( iter, nitrst, numriw, 'sxyage', sxyage, ldxios = lwxios) 893 906 ! ! snow layers heat content 894 907 DO jk = 1, nlay_s 895 908 WRITE(zchar1,'(I2.2)') jk 896 znam = 'sxc0'//'_l'//zchar1 ; z3d(:,:,:) = sxc0 (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 897 znam = 'syc0'//'_l'//zchar1 ; z3d(:,:,:) = syc0 (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 898 znam = 'sxxc0'//'_l'//zchar1 ; z3d(:,:,:) = sxxc0(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 899 znam = 'syyc0'//'_l'//zchar1 ; z3d(:,:,:) = syyc0(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 900 znam = 'sxyc0'//'_l'//zchar1 ; z3d(:,:,:) = sxyc0(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 909 znam = 'sxc0'//'_l'//zchar1 ; z3d(:,:,:) = sxc0 (:,:,jk,:) 910 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 911 znam = 'syc0'//'_l'//zchar1 ; z3d(:,:,:) = syc0 (:,:,jk,:) 912 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 913 znam = 'sxxc0'//'_l'//zchar1 ; z3d(:,:,:) = sxxc0(:,:,jk,:) 914 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 915 znam = 'syyc0'//'_l'//zchar1 ; z3d(:,:,:) = syyc0(:,:,jk,:) 916 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 917 znam = 'sxyc0'//'_l'//zchar1 ; z3d(:,:,:) = sxyc0(:,:,jk,:) 918 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 901 919 END DO 902 920 ! ! ice layers heat content 903 921 DO jk = 1, nlay_i 904 922 WRITE(zchar1,'(I2.2)') jk 905 znam = 'sxe'//'_l'//zchar1 ; z3d(:,:,:) = sxe (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 906 znam = 'sye'//'_l'//zchar1 ; z3d(:,:,:) = sye (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 907 znam = 'sxxe'//'_l'//zchar1 ; z3d(:,:,:) = sxxe(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 908 znam = 'syye'//'_l'//zchar1 ; z3d(:,:,:) = syye(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 909 znam = 'sxye'//'_l'//zchar1 ; z3d(:,:,:) = sxye(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 923 znam = 'sxe'//'_l'//zchar1 ; z3d(:,:,:) = sxe (:,:,jk,:) 924 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 925 znam = 'sye'//'_l'//zchar1 ; z3d(:,:,:) = sye (:,:,jk,:) 926 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 927 znam = 'sxxe'//'_l'//zchar1 ; z3d(:,:,:) = sxxe(:,:,jk,:) 928 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 929 znam = 'syye'//'_l'//zchar1 ; z3d(:,:,:) = syye(:,:,jk,:) 930 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 931 znam = 'sxye'//'_l'//zchar1 ; z3d(:,:,:) = sxye(:,:,jk,:) 932 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 910 933 END DO 911 934 ! 912 935 IF( ln_pnd_H12 ) THEN ! melt pond fraction 913 CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap 914 CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap 915 CALL iom_rstput( iter, nitrst, numriw, 'sxxap', sxxap 916 CALL iom_rstput( iter, nitrst, numriw, 'syyap', syyap 917 CALL iom_rstput( iter, nitrst, numriw, 'sxyap', sxyap 936 CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap, ldxios = lwxios) 937 CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap, ldxios = lwxios) 938 CALL iom_rstput( iter, nitrst, numriw, 'sxxap', sxxap, ldxios = lwxios) 939 CALL iom_rstput( iter, nitrst, numriw, 'syyap', syyap, ldxios = lwxios) 940 CALL iom_rstput( iter, nitrst, numriw, 'sxyap', sxyap, ldxios = lwxios) 918 941 ! ! melt pond volume 919 CALL iom_rstput( iter, nitrst, numriw, 'sxvp' , sxvp 920 CALL iom_rstput( iter, nitrst, numriw, 'syvp' , syvp 921 CALL iom_rstput( iter, nitrst, numriw, 'sxxvp', sxxvp 922 CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp 923 CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp 942 CALL iom_rstput( iter, nitrst, numriw, 'sxvp' , sxvp, ldxios = lwxios) 943 CALL iom_rstput( iter, nitrst, numriw, 'syvp' , syvp, ldxios = lwxios) 944 CALL iom_rstput( iter, nitrst, numriw, 'sxxvp', sxxvp, ldxios = lwxios) 945 CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp, ldxios = lwxios) 946 CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp, ldxios = lwxios) 924 947 ENDIF 948 IF( lwxios ) CALL iom_swap( cxios_context ) 925 949 ! 926 950 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.