Changeset 11893
- Timestamp:
- 2019-11-13T09:48:43+01:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r11756_SI3restart_XIOS
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/cfgs/AMM12/EXPREF/iodef.xml
r7646 r11893 24 24 25 25 <context id="nemo" src="./context_nemo.xml"/> <!-- NEMO --> 26 <context id="nemo_rstw" src="./nemo_rstw.xml"/> 27 <context id="si3_rst" src="./si3_rst.xml"/> 26 28 27 29 </simulation> -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/cfgs/ORCA2_ICE_PISCES/EXPREF/iodef.xml
r9526 r11893 23 23 24 24 <context id="nemo" src="./context_nemo.xml"/> <!-- NEMO --> 25 <context id="nemo_rstw" src="./nemo_rstw.xml"/> <!-- NEMO restart write context --> 26 <context id="si3_rst" src="./si3_rst.xml"/> <!-- SI3 restart read context --> 25 27 26 28 </simulation> -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/cfgs/ORCA2_SAS_ICE/EXPREF/iodef.xml
r9572 r11893 23 23 24 24 <context id="nemo" src="./context_nemo.xml"/> <!-- NEMO --> 25 <context id="nemo_rstw" src="./nemo_rstw.xml"/> 26 <context id="si3_rst" src="./si3_rst.xml"/> 25 27 26 28 </simulation> -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/cfgs/SHARED/grid_def_nemo.xml
r11536 r11893 57 57 <scalar/> 58 58 </grid> 59 <!-- writeng/reading SI3 4D restart --> 60 <grid id="grid_Ni_4D" > 61 <domain id="grid_N" /> 62 <axis id="nlay_i" /> 63 <axis id="numcat" /> 64 </grid> 65 <!-- writeng/reading SI3 4D restart --> 66 <grid id="grid_Ns_4D" > 67 <domain id="grid_N" /> 68 <axis id="nlay_s" /> 69 <axis id="numcat" /> 70 </grid> 71 72 <!-- --> 73 59 74 60 75 </grid_definition> -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/cfgs/SPITZ12/EXPREF/iodef.xml
r9552 r11893 23 23 24 24 <context id="nemo" src="./context_nemo.xml"/> <!-- NEMO --> 25 25 <context id="nemo_rstw" src="./nemo_rstw.xml"/> 26 <context id="si3_rst" src="./si3_rst.xml"/> 26 27 </simulation> -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/ICE/icedyn_adv_pra.F90
r11870 r11893 702 702 CALL iom_set_rstw_var_active(rsti_wfields, 'syyage') 703 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 704 705 CALL iom_set_rstw_var_active(rsti_wfields, 'sxc0') 706 CALL iom_set_rstw_var_active(rsti_wfields, 'syc0') 707 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxc0') 708 CALL iom_set_rstw_var_active(rsti_wfields, 'syyc0') 709 CALL iom_set_rstw_var_active(rsti_wfields, 'sxyc0') 710 711 CALL iom_set_rstw_var_active(rsti_wfields, 'sxe') 712 CALL iom_set_rstw_var_active(rsti_wfields, 'sye') 713 CALL iom_set_rstw_var_active(rsti_wfields, 'sxxe') 714 CALL iom_set_rstw_var_active(rsti_wfields, 'syye') 715 CALL iom_set_rstw_var_active(rsti_wfields, 'sxye') 730 716 ! 731 717 IF( ln_pnd_H12 ) THEN ! melt pond fraction … … 842 828 CALL iom_get( numrir, jpdom_autoglo, "syyc0", syyc0, ldxios = lrxios ) 843 829 CALL iom_get( numrir, jpdom_autoglo, "sxyc0", sxyc0, ldxios = lrxios ) 844 CALL iom_get( numrir, jpdom_autoglo, "sxe", sx c0, ldxios = lrxios )845 CALL iom_get( numrir, jpdom_autoglo, "sye", sy c0, ldxios = lrxios )846 CALL iom_get( numrir, jpdom_autoglo, "sxxe", sxx c0, ldxios = lrxios )847 CALL iom_get( numrir, jpdom_autoglo, "syye", syy c0, ldxios = lrxios )848 CALL iom_get( numrir, jpdom_autoglo, "sxye", sxy c0, ldxios = lrxios )830 CALL iom_get( numrir, jpdom_autoglo, "sxe", sxe, ldxios = lrxios ) 831 CALL iom_get( numrir, jpdom_autoglo, "sye", sye, ldxios = lrxios ) 832 CALL iom_get( numrir, jpdom_autoglo, "sxxe", sxxe, ldxios = lrxios ) 833 CALL iom_get( numrir, jpdom_autoglo, "syye", syye, ldxios = lrxios ) 834 CALL iom_get( numrir, jpdom_autoglo, "sxye", sxye, ldxios = lrxios ) 849 835 ENDIF 850 836 ! … … 924 910 CALL iom_rstput( iter, nitrst, numriw, 'sxyage', sxyage, ldxios = lwxios ) 925 911 ! ! snow layers heat content 926 DO jk = 1, nlay_s 927 WRITE(zchar1,'(I2.2)') jk 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 ) 947 END DO 948 ! ! ice layers heat content 949 DO jk = 1, nlay_i 950 WRITE(zchar1,'(I2.2)') jk 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 ) 966 END DO 912 IF(lwxios) THEN 913 CALL iom_rstput( iter, nitrst, numriw, 'sxc0' , sxc0, ldxios = lwxios ) 914 CALL iom_rstput( iter, nitrst, numriw, 'syc0' , syc0, ldxios = lwxios ) 915 CALL iom_rstput( iter, nitrst, numriw, 'sxxc0', sxxc0, ldxios = lwxios ) 916 CALL iom_rstput( iter, nitrst, numriw, 'syyc0', syyc0, ldxios = lwxios ) 917 CALL iom_rstput( iter, nitrst, numriw, 'sxyc0', sxyc0, ldxios = lwxios ) 918 919 920 CALL iom_rstput( iter, nitrst, numriw, 'sxe' , sxe, ldxios = lwxios ) 921 CALL iom_rstput( iter, nitrst, numriw, 'sye' , sye, ldxios = lwxios ) 922 CALL iom_rstput( iter, nitrst, numriw, 'sxxe', sxxe, ldxios = lwxios ) 923 CALL iom_rstput( iter, nitrst, numriw, 'syye', syye, ldxios = lwxios ) 924 CALL iom_rstput( iter, nitrst, numriw, 'sxye', sxye, ldxios = lwxios ) 925 ELSE 926 DO jk = 1, nlay_s 927 WRITE(zchar1,'(I2.2)') jk 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 ) 947 END DO 948 ! ! ice layers heat content 949 DO jk = 1, nlay_i 950 WRITE(zchar1,'(I2.2)') jk 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 ) 966 END DO 967 ENDIF 967 968 ! 968 969 IF( ln_pnd_H12 ) THEN ! melt pond fraction -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/ICE/icerst.F90
r11870 r11893 138 138 CALL iom_rstput( iter, nitrst, numriw, 'a_ip' , a_ip, ldxios = lwxios ) 139 139 CALL iom_rstput( iter, nitrst, numriw, 'v_ip' , v_ip, ldxios = lwxios ) 140 IF(lwxios) THEN 141 CALL iom_rstput( iter, nitrst, numriw, 'e_s' , e_s, ldxios = lwxios ) 142 CALL iom_rstput( iter, nitrst, numriw, 'e_i' , e_i, ldxios = lwxios ) 143 ELSE 140 144 ! Snow enthalpy 141 DO jk = 1, nlay_s 142 WRITE(zchar1,'(I2.2)') jk 143 znam = 'e_s'//'_l'//zchar1 144 z3d(:,:,:) = e_s(:,:,jk,:) 145 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 146 END DO 147 ! Ice enthalpy 148 DO jk = 1, nlay_i 149 WRITE(zchar1,'(I2.2)') jk 150 znam = 'e_i'//'_l'//zchar1 151 z3d(:,:,:) = e_i(:,:,jk,:) 152 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 153 END DO 145 DO jk = 1, nlay_s 146 WRITE(zchar1,'(I2.2)') jk 147 znam = 'e_s'//'_l'//zchar1 148 z3d(:,:,:) = e_s(:,:,jk,:) 149 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 150 END DO 151 ! Ice enthalpy 152 DO jk = 1, nlay_i 153 WRITE(zchar1,'(I2.2)') jk 154 znam = 'e_i'//'_l'//zchar1 155 z3d(:,:,:) = e_i(:,:,jk,:) 156 CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 157 END DO 158 ENDIF 154 159 ! fields needed for Met Office (Jules) coupling 155 160 IF( ln_cpl ) THEN -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/OCE/IOM/iom.F90
r11870 r11893 64 64 PUBLIC iom_use, iom_context_finalize, iom_miss_val 65 65 66 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 66 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d, iom_rp4d 67 67 PRIVATE iom_g0d, iom_g1d, iom_g2d, iom_g3d, iom_g4d, iom_get_123d 68 68 PRIVATE iom_p1d, iom_p2d, iom_p3d … … 89 89 END INTERFACE 90 90 INTERFACE iom_rstput 91 MODULE PROCEDURE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 91 MODULE PROCEDURE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d, iom_rp4d 92 92 END INTERFACE 93 93 INTERFACE iom_put … … 451 451 CALL xios_add_child(file_hdl, field_hdl, TRIM(rst_rfields(i)%vname)) 452 452 SELECT CASE (TRIM(rst_rfields(i)%grid)) 453 ! CASE ("grid_Ni_4D") 454 ! CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 455 ! domain_ref="grid_N", axis_ref="nlay_i", axis_ref="numcat", operation = "instant") 456 ! CASE ("grid_Ns_4D") 457 ! CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 458 ! domain_ref="grid_N", axis_ref="nlay_s", axis_ref="numcat", operation = "instant") 453 #if defined key_si3 454 CASE ("grid_Ni_4D") 455 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 456 grid_ref="grid_Ni_4D", operation = "instant") 457 CASE ("grid_Ns_4D") 458 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 459 grid_ref="grid_Ns_4D", operation = "instant") 459 460 CASE ("grid_Ni_3D") 460 461 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 461 domain_ref="grid_N", axis_ref="numcat", operation = "instant") 462 domain_ref="grid_N", axis_ref="numcat", operation = "instant") 463 #endif 462 464 CASE ("grid_N_3D") 463 465 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 464 domain_ref="grid_N", axis_ref="nav_lev", operation = "instant")466 domain_ref="grid_N", axis_ref="nav_lev", operation = "instant") 465 467 CASE ("grid_N") 466 468 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 467 domain_ref="grid_N", operation = "instant")469 domain_ref="grid_N", operation = "instant") 468 470 CASE ("grid_vector") 469 471 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & … … 471 473 CASE ("grid_scalar") 472 474 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(rst_rfields(i)%vname), & 473 scalar_ref = "grid_scalar", operation = "instant")475 scalar_ref = "grid_scalar", operation = "instant") 474 476 END SELECT 475 477 IF(lwp) WRITE(numout,*) 'XIOS read: ', TRIM(rst_rfields(i)%vname), ' enabled in ', TRIM(rst_file) … … 526 528 CALL iom_set_rstw_var_active(drst_wfields, 'sbc_sc_b') 527 529 ELSE IF(cdmdl == "SI3") THEN 530 #if defined key_si3 528 531 CALL iom_set_rstw_var_active(drst_wfields, 'nn_fsbc_ice') 529 CALL iom_set_rstw_var_active(drst_wfields, 'kt_ice') 530 CALL iom_set_rstw_var_active(drst_wfields, 'v_i') 531 CALL iom_set_rstw_var_active(drst_wfields, 'v_s') 532 CALL iom_set_rstw_var_active(drst_wfields, 'sv_i') 533 CALL iom_set_rstw_var_active(drst_wfields, 'a_i') 534 CALL iom_set_rstw_var_active(drst_wfields, 't_su') 535 CALL iom_set_rstw_var_active(drst_wfields, 'u_ice') 536 CALL iom_set_rstw_var_active(drst_wfields, 'v_ice') 537 CALL iom_set_rstw_var_active(drst_wfields, 'oa_i') 538 CALL iom_set_rstw_var_active(drst_wfields, 'a_ip') 539 CALL iom_set_rstw_var_active(drst_wfields, 'v_ip') 540 DO jk = 1, nlay_s 541 WRITE(zchar1,'(I2.2)') jk 542 znam = 'e_s'//'_l'//zchar1 543 CALL iom_set_rstw_var_active(drst_wfields, znam ) 544 END DO 545 ! Ice enthalpy 546 DO jk = 1, nlay_i 547 WRITE(zchar1,'(I2.2)') jk 548 znam = 'e_i'//'_l'//zchar1 549 CALL iom_set_rstw_var_active(drst_wfields, znam ) 550 END DO 532 CALL iom_set_rstw_var_active(drst_wfields, 'kt_ice' ) 533 CALL iom_set_rstw_var_active(drst_wfields, 'v_i' ) 534 CALL iom_set_rstw_var_active(drst_wfields, 'v_s' ) 535 CALL iom_set_rstw_var_active(drst_wfields, 'sv_i' ) 536 CALL iom_set_rstw_var_active(drst_wfields, 'a_i' ) 537 CALL iom_set_rstw_var_active(drst_wfields, 't_su' ) 538 CALL iom_set_rstw_var_active(drst_wfields, 'u_ice' ) 539 CALL iom_set_rstw_var_active(drst_wfields, 'v_ice' ) 540 CALL iom_set_rstw_var_active(drst_wfields, 'oa_i' ) 541 CALL iom_set_rstw_var_active(drst_wfields, 'a_ip' ) 542 CALL iom_set_rstw_var_active(drst_wfields, 'v_ip' ) 543 CALL iom_set_rstw_var_active(drst_wfields, 'e_s' ) 544 CALL iom_set_rstw_var_active(drst_wfields, 'e_i' ) 545 #endif 551 546 ENDIF 552 547 #else … … 707 702 i = iom_add(i); fields(i)%vname="syyage"; fields(i)%grid="grid_Ni_3D" 708 703 i = iom_add(i); fields(i)%vname="sxyage"; fields(i)%grid="grid_Ni_3D" 709 !this part is in addition to 4D grids, to handle old format ofSI3 resart704 !this part is in addition to 4D grids, to handle old format for SI3 resart 710 705 !NEMO format restart 711 706 DO jk = 1, nlay_s … … 727 722 i = iom_add(i); fields(i)%vname="sxxc0"; fields(i)%grid="grid_Ns_4D" 728 723 i = iom_add(i); fields(i)%vname="syyc0"; fields(i)%grid="grid_Ns_4D" 729 i = iom_add(i); fields(i)%vname="sx xc0"; fields(i)%grid="grid_Ns_4D"724 i = iom_add(i); fields(i)%vname="sxyc0"; fields(i)%grid="grid_Ns_4D" 730 725 ! 731 726 !NEMO format restart … … 839 834 CALL xios_add_child(file_hdl, field_hdl, TRIM(drst_wfields(i)%vname)//"_"//TRIM(ADJUSTL(snr))) 840 835 SELECT CASE (TRIM(drst_wfields(i)%grid)) 836 #if defined key_si3 837 CASE ("grid_Ni_4D") 838 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(drst_wfields(i)%vname), & 839 grid_ref="grid_Ni_4D", prec = 8, operation = "instant") 840 CASE ("grid_Ns_4D") 841 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(drst_wfields(i)%vname), & 842 grid_ref="grid_Ns_4D", prec = 8, operation = "instant") 841 843 CASE ("grid_Ni_3D") 842 844 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(drst_wfields(i)%vname), & 843 domain_ref="grid_N", axis_ref="numcat", prec = 8, operation = "once", &844 freq_offset=(kdstep -1) * xios_timestep) 845 domain_ref="grid_N", axis_ref="numcat", prec = 8, operation = "instant") 846 #endif 845 847 CASE ("grid_N_3D") 846 848 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(drst_wfields(i)%vname), & 847 domain_ref="grid_N", axis_ref="nav_lev", prec = 8, operation = "once", & 848 freq_offset=(kdstep -1) * xios_timestep) 849 domain_ref="grid_N", axis_ref="nav_lev", prec = 8, operation = "instant") 849 850 CASE ("grid_N") 850 851 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(drst_wfields(i)%vname), & 851 domain_ref="grid_N", prec = 8, operation = "once", & 852 freq_offset=(kdstep -1) * xios_timestep) 852 domain_ref="grid_N", prec = 8, operation = "instant") 853 853 CASE ("grid_vector") 854 854 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(drst_wfields(i)%vname), & 855 axis_ref="nav_lev", prec = 8, operation = "once", & 856 freq_offset=(kdstep -1) * xios_timestep) 855 axis_ref="nav_lev", prec = 8, operation = "instant") 857 856 CASE ("grid_scalar") 858 857 CALL xios_set_attr (field_hdl, enabled = .TRUE., name = TRIM(drst_wfields(i)%vname), & 859 scalar_ref = "grid_scalar", prec = 8, operation = "once", & 860 freq_offset=(kdstep -1) * xios_timestep) 858 scalar_ref = "grid_scalar", prec = 8, operation = "instant") 861 859 END SELECT 862 860 ENDIF … … 1953 1951 END SUBROUTINE iom_rp3d 1954 1952 1955 1956 SUBROUTINE iom_delay_rst( cdaction, cdcpnt, kncid ) 1953 SUBROUTINE iom_rp4d( kt, kwrite, kiomid, cdvar, pvar, ktype, ldxios ) 1954 INTEGER , INTENT(in) :: kt ! ocean time-step 1955 INTEGER , INTENT(in) :: kwrite ! writing time-step 1956 INTEGER , INTENT(in) :: kiomid ! Identifier of the file 1957 CHARACTER(len=*), INTENT(in) :: cdvar ! time axis name 1958 REAL(wp) , INTENT(in), DIMENSION(:,:,:,:) :: pvar ! written field 1959 INTEGER , INTENT(in), OPTIONAL :: ktype ! variable external type 1960 LOGICAL, OPTIONAL :: ldxios ! xios write flag 1961 LOGICAL :: llx ! local xios write flag 1962 INTEGER :: ivid ! variable id 1963 1964 llx = .FALSE. 1965 IF(PRESENT(ldxios)) llx = ldxios 1966 IF( llx ) THEN 1967 #ifdef key_iomput 1968 IF( kt == kwrite ) THEN 1969 IF(lwp) write(numout,*) 'RESTART: write (XIOS 4D) ',trim(cdvar) 1970 write(snr, *) nitrst 1971 CALL xios_send_field(trim(cdvar)//"_"//TRIM(ADJUSTL(snr)), pvar) 1972 ENDIF 1973 #endif 1974 ELSE 1975 CALL ctl_stop('Error in the name iom_rp4d for variable '//TRIM(cdvar), & 1976 & 'Restart with iom_nf90_rstput can not handle 4D cases' ) 1977 ENDIF 1978 END SUBROUTINE iom_rp4d 1979 1980 SUBROUTINE iom_delay_rst( cdaction, cdcpnt, kncid ) 1957 1981 !!--------------------------------------------------------------------- 1958 1982 !! Routine iom_delay_rst: used read/write restart related to mpp_delay … … 1970 1994 ! 1971 1995 !return for now. When XIOS is used to write restart it also should be used to write this attribute 1972 IF(lwxios) return 1996 IF(lwxios) THEN 1997 CALL ctl_warn( 'From iom_delay_rst: ', 'Can not '//cdaction//' mpp_delay information with XIOS') 1998 RETURN 1999 ENDIF 2000 1973 2001 ! =================================== 1974 2002 IF( TRIM(cdaction) == 'READ' ) THEN ! read restart related to mpp_delay ! … … 2740 2768 IF( iom_add > max_rst_fields) THEN 2741 2769 WRITE(ctmp1,*) 'E R R O R : iom_set_rst_vars SIZE of RST_FIELD array is too small' 2742 CALL ctl_stop( 'iom_add:', ctmp1 2770 CALL ctl_stop( 'iom_add:', ctmp1, 'Increase parameter max_rst_fields') 2743 2771 ENDIF 2744 2772 -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/OCE/IOM/iom_def.F90
r11840 r11893 67 67 END TYPE file_descriptor 68 68 TYPE(file_descriptor), DIMENSION(jpmax_files), PUBLIC :: iom_file !: array containing the info for all opened files 69 INTEGER, PARAMETER, PUBLIC :: max_rst_fields = 190!: maximum number of restart variables defined in iom_set_rst_vars69 INTEGER, PARAMETER, PUBLIC :: max_rst_fields = 250!: maximum number of restart variables defined in iom_set_rst_vars 70 70 TYPE, PUBLIC :: RST_FIELD 71 71 CHARACTER(len=30) :: vname = "NO_NAME" ! names of variables in restart file -
NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/OCE/step.F90
r11870 r11893 311 311 #if defined key_iomput 312 312 IF( kstp == nitend .OR. indic < 0 ) THEN 313 CALL iom_context_finalize( cxios_context ) ! needed for XIOS+AGRIF 314 IF(lrxios) THEN 315 CALL iom_context_finalize( crxios_context ) 313 IF(lrxios) THEN 314 CALL iom_context_finalize( crxios_context ) 316 315 #if defined key_si3 317 CALL iom_context_finalize( crixios_context ) 318 #endif 319 ENDIF 316 CALL iom_context_finalize( crixios_context ) 317 #endif 318 ENDIF 319 IF(lwxios) CALL iom_context_finalize( cwxios_context ) 320 320 IF( ln_crs ) CALL iom_context_finalize( trim(cxios_context)//"_crs" ) ! 321 CALL iom_context_finalize( cxios_context ) ! needed for XIOS+AGRIF 321 322 ENDIF 322 323 #endif
Note: See TracChangeset
for help on using the changeset viewer.