- Timestamp:
- 2019-10-31T16:30:50+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/ICE/icedyn_adv_pra.F90
r11837 r11840 650 650 !!------------------------------------------------------------------- 651 651 INTEGER :: ierr 652 INTEGER :: jk 653 CHARACTER(len=25) :: znam 654 CHARACTER(len=2) :: zchar1 652 655 !!------------------------------------------------------------------- 653 656 ! … … 671 674 IF( ierr /= 0 ) CALL ctl_stop('STOP', 'adv_pra_init : unable to allocate ice arrays for Prather advection scheme') 672 675 ! 673 CALL adv_pra_rst( 'READ' ) !* read or initialize all required files 676 CALL adv_pra_rst( 'READ' ) !* read or initialize all required files 677 ! 678 IF(lwxios) THEN 679 CALL iom_set_rstw_var_active(rsti_wfields, 'sxice') 680 CALL iom_set_rstw_var_active(rsti_wfields, 'syice') 681 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxice') 682 CALL iom_set_rstw_var_active(rsti_wfields, 'syyice') 683 CALL iom_set_rstw_var_active(rsti_wfields, 'sxyice') 684 CALL iom_set_rstw_var_active(rsti_wfields, 'sxsn' ) 685 CALL iom_set_rstw_var_active(rsti_wfields, 'sysn' ) 686 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxsn' ) 687 CALL iom_set_rstw_var_active(rsti_wfields, 'syysn' ) 688 CALL iom_set_rstw_var_active(rsti_wfields, 'sxysn' ) 689 CALL iom_set_rstw_var_active(rsti_wfields, 'sxa' ) 690 CALL iom_set_rstw_var_active(rsti_wfields, 'sya' ) 691 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxa' ) 692 CALL iom_set_rstw_var_active(rsti_wfields, 'syya' ) 693 CALL iom_set_rstw_var_active(rsti_wfields, 'sxya' ) 694 CALL iom_set_rstw_var_active(rsti_wfields, 'sxsal' ) 695 CALL iom_set_rstw_var_active(rsti_wfields, 'sysal' ) 696 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxsal') 697 CALL iom_set_rstw_var_active(rsti_wfields, 'syysal') 698 CALL iom_set_rstw_var_active(rsti_wfields, 'sxysal') 699 CALL iom_set_rstw_var_active(rsti_wfields, 'sxage' ) 700 CALL iom_set_rstw_var_active(rsti_wfields, 'syage' ) 701 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxage') 702 CALL iom_set_rstw_var_active(rsti_wfields, 'syyage') 703 CALL iom_set_rstw_var_active(rsti_wfields, 'sxyage') 704 DO jk = 1, nlay_s 705 WRITE(zchar1,'(I2.2)') jk 706 znam = 'sxc0'//'_l'//zchar1 707 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 708 znam = 'syc0'//'_l'//zchar1 709 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 710 znam = 'sxxc0'//'_l'//zchar1 711 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 712 znam = 'syyc0'//'_l'//zchar1 713 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 714 znam = 'sxyc0'//'_l'//zchar1 715 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 716 END DO 717 DO jk = 1, nlay_i 718 WRITE(zchar1,'(I2.2)') jk 719 znam = 'sxe'//'_l'//zchar1 720 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 721 znam = 'sye'//'_l'//zchar1 722 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 723 znam = 'sxxe'//'_l'//zchar1 724 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 725 znam = 'syye'//'_l'//zchar1 726 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 727 znam = 'sxye'//'_l'//zchar1 728 CALL iom_set_rstw_var_active(rsti_wfields, znam ) 729 END DO 730 ! 731 IF( ln_pnd_H12 ) THEN ! melt pond fraction 732 CALL iom_set_rstw_var_active(rsti_wfields, 'sxap' ) 733 CALL iom_set_rstw_var_active(rsti_wfields, 'syap' ) 734 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxap') 735 CALL iom_set_rstw_var_active(rsti_wfields, 'syyap') 736 CALL iom_set_rstw_var_active(rsti_wfields, 'sxyap') 737 CALL iom_set_rstw_var_active(rsti_wfields, 'sxvp' ) 738 CALL iom_set_rstw_var_active(rsti_wfields, 'syvp' ) 739 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxvp') 740 CALL iom_set_rstw_var_active(rsti_wfields, 'syyvp') 741 CALL iom_set_rstw_var_active(rsti_wfields, 'sxyvp') 742 ENDIF 743 ENDIF 674 744 ! 675 745 END SUBROUTINE adv_pra_init … … 823 893 ! 824 894 ! ! ice thickness 825 CALL iom_rstput( iter, nitrst, numriw, 'sxice' , sxice ) 826 CALL iom_rstput( iter, nitrst, numriw, 'syice' , syice ) 827 CALL iom_rstput( iter, nitrst, numriw, 'sxxice', sxxice ) 828 CALL iom_rstput( iter, nitrst, numriw, 'syyice', syyice ) 829 CALL iom_rstput( iter, nitrst, numriw, 'sxyice', sxyice ) 895 IF(lwxios) CALL iom_swap( TRIM(cwixios_context) ) 896 CALL iom_rstput( iter, nitrst, numriw, 'sxice' , sxice, ldxios = lwxios ) 897 CALL iom_rstput( iter, nitrst, numriw, 'syice' , syice, ldxios = lwxios ) 898 CALL iom_rstput( iter, nitrst, numriw, 'sxxice', sxxice, ldxios = lwxios ) 899 CALL iom_rstput( iter, nitrst, numriw, 'syyice', syyice, ldxios = lwxios ) 900 CALL iom_rstput( iter, nitrst, numriw, 'sxyice', sxyice, ldxios = lwxios ) 830 901 ! ! snow thickness 831 CALL iom_rstput( iter, nitrst, numriw, 'sxsn' , sxsn 832 CALL iom_rstput( iter, nitrst, numriw, 'sysn' , sysn 833 CALL iom_rstput( iter, nitrst, numriw, 'sxxsn' , sxxsn 834 CALL iom_rstput( iter, nitrst, numriw, 'syysn' , syysn 835 CALL iom_rstput( iter, nitrst, numriw, 'sxysn' , sxysn 902 CALL iom_rstput( iter, nitrst, numriw, 'sxsn' , sxsn, ldxios = lwxios ) 903 CALL iom_rstput( iter, nitrst, numriw, 'sysn' , sysn, ldxios = lwxios ) 904 CALL iom_rstput( iter, nitrst, numriw, 'sxxsn' , sxxsn, ldxios = lwxios ) 905 CALL iom_rstput( iter, nitrst, numriw, 'syysn' , syysn, ldxios = lwxios ) 906 CALL iom_rstput( iter, nitrst, numriw, 'sxysn' , sxysn, ldxios = lwxios ) 836 907 ! ! ice concentration 837 CALL iom_rstput( iter, nitrst, numriw, 'sxa' , sxa 838 CALL iom_rstput( iter, nitrst, numriw, 'sya' , sya 839 CALL iom_rstput( iter, nitrst, numriw, 'sxxa' , sxxa 840 CALL iom_rstput( iter, nitrst, numriw, 'syya' , syya 841 CALL iom_rstput( iter, nitrst, numriw, 'sxya' , sxya 908 CALL iom_rstput( iter, nitrst, numriw, 'sxa' , sxa, ldxios = lwxios ) 909 CALL iom_rstput( iter, nitrst, numriw, 'sya' , sya, ldxios = lwxios ) 910 CALL iom_rstput( iter, nitrst, numriw, 'sxxa' , sxxa, ldxios = lwxios ) 911 CALL iom_rstput( iter, nitrst, numriw, 'syya' , syya, ldxios = lwxios ) 912 CALL iom_rstput( iter, nitrst, numriw, 'sxya' , sxya, ldxios = lwxios ) 842 913 ! ! ice salinity 843 CALL iom_rstput( iter, nitrst, numriw, 'sxsal' , sxsal 844 CALL iom_rstput( iter, nitrst, numriw, 'sysal' , sysal 845 CALL iom_rstput( iter, nitrst, numriw, 'sxxsal', sxxsal )846 CALL iom_rstput( iter, nitrst, numriw, 'syysal', syysal )847 CALL iom_rstput( iter, nitrst, numriw, 'sxysal', sxysal )914 CALL iom_rstput( iter, nitrst, numriw, 'sxsal' , sxsal, ldxios = lwxios ) 915 CALL iom_rstput( iter, nitrst, numriw, 'sysal' , sysal, ldxios = lwxios ) 916 CALL iom_rstput( iter, nitrst, numriw, 'sxxsal', sxxsal, ldxios = lwxios ) 917 CALL iom_rstput( iter, nitrst, numriw, 'syysal', syysal, ldxios = lwxios ) 918 CALL iom_rstput( iter, nitrst, numriw, 'sxysal', sxysal, ldxios = lwxios ) 848 919 ! ! ice age 849 CALL iom_rstput( iter, nitrst, numriw, 'sxage' , sxage 850 CALL iom_rstput( iter, nitrst, numriw, 'syage' , syage 851 CALL iom_rstput( iter, nitrst, numriw, 'sxxage', sxxage )852 CALL iom_rstput( iter, nitrst, numriw, 'syyage', syyage )853 CALL iom_rstput( iter, nitrst, numriw, 'sxyage', sxyage )920 CALL iom_rstput( iter, nitrst, numriw, 'sxage' , sxage, ldxios = lwxios ) 921 CALL iom_rstput( iter, nitrst, numriw, 'syage' , syage, ldxios = lwxios ) 922 CALL iom_rstput( iter, nitrst, numriw, 'sxxage', sxxage, ldxios = lwxios ) 923 CALL iom_rstput( iter, nitrst, numriw, 'syyage', syyage, ldxios = lwxios ) 924 CALL iom_rstput( iter, nitrst, numriw, 'sxyage', sxyage, ldxios = lwxios ) 854 925 ! ! snow layers heat content 855 926 DO jk = 1, nlay_s 856 927 WRITE(zchar1,'(I2.2)') jk 857 znam = 'sxc0'//'_l'//zchar1 ; z3d(:,:,:) = sxc0 (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 858 znam = 'syc0'//'_l'//zchar1 ; z3d(:,:,:) = syc0 (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 859 znam = 'sxxc0'//'_l'//zchar1 ; z3d(:,:,:) = sxxc0(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 860 znam = 'syyc0'//'_l'//zchar1 ; z3d(:,:,:) = syyc0(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 861 znam = 'sxyc0'//'_l'//zchar1 ; z3d(:,:,:) = sxyc0(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 928 znam = 'sxc0'//'_l'//zchar1 929 z3d(:,:,:) = sxc0 (:,:,jk,:) 930 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 931 932 znam = 'syc0'//'_l'//zchar1 933 z3d(:,:,:) = syc0 (:,:,jk,:) 934 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 935 936 znam = 'sxxc0'//'_l'//zchar1 937 z3d(:,:,:) = sxxc0(:,:,jk,:) 938 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 939 940 znam = 'syyc0'//'_l'//zchar1 941 z3d(:,:,:) = syyc0(:,:,jk,:) 942 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 943 944 znam = 'sxyc0'//'_l'//zchar1 945 z3d(:,:,:) = sxyc0(:,:,jk,:) 946 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 862 947 END DO 863 948 ! ! ice layers heat content 864 949 DO jk = 1, nlay_i 865 950 WRITE(zchar1,'(I2.2)') jk 866 znam = 'sxe'//'_l'//zchar1 ; z3d(:,:,:) = sxe (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 867 znam = 'sye'//'_l'//zchar1 ; z3d(:,:,:) = sye (:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 868 znam = 'sxxe'//'_l'//zchar1 ; z3d(:,:,:) = sxxe(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 869 znam = 'syye'//'_l'//zchar1 ; z3d(:,:,:) = syye(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 870 znam = 'sxye'//'_l'//zchar1 ; z3d(:,:,:) = sxye(:,:,jk,:) ; CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 951 znam = 'sxe'//'_l'//zchar1 952 z3d(:,:,:) = sxe (:,:,jk,:) 953 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 954 znam = 'sye'//'_l'//zchar1 955 z3d(:,:,:) = sye (:,:,jk,:) 956 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 957 znam = 'sxxe'//'_l'//zchar1 958 z3d(:,:,:) = sxxe(:,:,jk,:) 959 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 960 znam = 'syye'//'_l'//zchar1 961 z3d(:,:,:) = syye(:,:,jk,:) 962 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 963 znam = 'sxye'//'_l'//zchar1 964 z3d(:,:,:) = sxye(:,:,jk,:) 965 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 871 966 END DO 872 967 ! 873 968 IF( ln_pnd_H12 ) THEN ! melt pond fraction 874 CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap 875 CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap 876 CALL iom_rstput( iter, nitrst, numriw, 'sxxap', sxxap )877 CALL iom_rstput( iter, nitrst, numriw, 'syyap', syyap )878 CALL iom_rstput( iter, nitrst, numriw, 'sxyap', sxyap )969 CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap, ldxios = lwxios ) 970 CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap, ldxios = lwxios ) 971 CALL iom_rstput( iter, nitrst, numriw, 'sxxap', sxxap, ldxios = lwxios ) 972 CALL iom_rstput( iter, nitrst, numriw, 'syyap', syyap, ldxios = lwxios ) 973 CALL iom_rstput( iter, nitrst, numriw, 'sxyap', sxyap, ldxios = lwxios ) 879 974 ! ! melt pond volume 880 CALL iom_rstput( iter, nitrst, numriw, 'sxvp' , sxvp 881 CALL iom_rstput( iter, nitrst, numriw, 'syvp' , syvp 882 CALL iom_rstput( iter, nitrst, numriw, 'sxxvp', sxxvp )883 CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp )884 CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp )975 CALL iom_rstput( iter, nitrst, numriw, 'sxvp' , sxvp, ldxios = lwxios ) 976 CALL iom_rstput( iter, nitrst, numriw, 'syvp' , syvp, ldxios = lwxios ) 977 CALL iom_rstput( iter, nitrst, numriw, 'sxxvp', sxxvp, ldxios = lwxios ) 978 CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp, ldxios = lwxios ) 979 CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp, ldxios = lwxios ) 885 980 ENDIF 981 ! 982 IF(lwxios) CALL iom_swap( TRIM(cxios_context) ) 886 983 ! 887 984 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.