- Timestamp:
- 2022-04-14T10:01:23+02:00 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_2_2/ORCHIDEE/src_parallel/ioipsl_para.f90
r5811 r7576 46 46 USE mod_orchidee_para_var 47 47 USE mod_orchidee_transfert_para 48 USE constantes_var, ONLY: val_exp 48 49 !- 49 50 IMPLICIT NONE … … 86 87 MODULE PROCEDURE & 87 88 restput_p_r3d, restput_p_r2d, restput_p_r1d, & 88 restput_p_opp_r2d, restput_p_opp_r1d 89 restput_p_opp_r2d, restput_p_opp_r1d, & 90 restput_p_nogrid_r_scal, restput_p_nogrid_i_scal 89 91 END INTERFACE 90 92 !- … … 98 100 !! \n 99 101 !_ ================================================================================================================================ 100 INTERFACE restget_p102 INTERFACE restget_p 101 103 MODULE PROCEDURE & 102 104 restget_p_r3d, restget_p_r2d, restget_p_r1d, & 103 restget_p_opp_r2d, restget_p_opp_r1d 105 restget_p_opp_r2d, restget_p_opp_r1d, & 106 restget_p_nogrid_r_scal, restget_p_nogrid_i_scal 104 107 END INTERFACE 105 108 … … 971 974 END SUBROUTINE histwrite_r3d_p 972 975 976 !! ============================================================================================================================= 977 !! SUBROUTINE: restput_p_nogrid_r_scal 978 !! 979 !>\BRIEF save real scalar (non-grid) data into the restart file 980 !! 981 !! DESCRIPTION: Need to be call by all process 982 !! 983 !! \n 984 !_ ============================================================================================================================== 985 SUBROUTINE restput_p_nogrid_r_scal (fid,vname_q,itau,var) 986 IMPLICIT NONE 987 !- 988 INTEGER :: fid 989 CHARACTER(LEN=*) :: vname_q 990 INTEGER :: itau 991 REAL :: var 992 !----------------------------- 993 REAL :: xtmp(1) 994 995 IF (is_root_prc) THEN 996 xtmp(1) = var 997 CALL restput (fid, vname_q, 1, 1, 1, itau, xtmp) 998 ENDIF 999 1000 END SUBROUTINE restput_p_nogrid_r_scal 1001 1002 !! ============================================================================================================================= 1003 !! SUBROUTINE: restput_p_nogrid_i_scal 1004 !! 1005 !>\BRIEF save integer scalar (non-grid) data into the restart file 1006 !! 1007 !! DESCRIPTION: Need to be call by all process 1008 !! 1009 !! \n 1010 !_ ============================================================================================================================== 1011 SUBROUTINE restput_p_nogrid_i_scal (fid,vname_q,itau,var) 1012 IMPLICIT NONE 1013 !- 1014 INTEGER :: fid 1015 CHARACTER(LEN=*) :: vname_q 1016 INTEGER :: itau 1017 INTEGER :: var 1018 !----------------------------- 1019 REAL :: xtmp(1) 1020 REAL :: realvar 1021 1022 IF (is_root_prc) THEN 1023 realvar = REAL(var,r_std) 1024 xtmp(1) = realvar 1025 CALL restput (fid, vname_q, 1, 1, 1, itau, xtmp) 1026 ENDIF 1027 1028 END SUBROUTINE restput_p_nogrid_i_scal 1029 1030 !! ============================================================================================================================= 1031 !! SUBROUTINE: restget_p_nogrid_r_scal 1032 !! 1033 !>\BRIEF Transform the data (real scalar) from the restart file onto the model grid 1034 !! 1035 !! DESCRIPTION: 1036 !! \n 1037 !_ ============================================================================================================================== 1038 SUBROUTINE restget_p_nogrid_r_scal & 1039 (fid,vname_q,itau,def_beha,def_val,var) 1040 ! 1041 IMPLICIT NONE 1042 !- 1043 INTEGER, INTENT(in) :: fid 1044 CHARACTER(LEN=*), INTENT(in) :: vname_q 1045 INTEGER, INTENT(in) :: itau 1046 LOGICAL, INTENT(in) :: def_beha 1047 REAL, INTENT(in) :: def_val 1048 REAL, INTENT(out) :: var 1049 !------------------------- 1050 REAL, DIMENSION(1) :: tmp 1051 1052 tmp(1) = var 1053 IF (is_root_prc) THEN 1054 var = val_exp 1055 CALL restget (fid, vname_q, 1 ,1 , 1, itau, def_beha, tmp) 1056 var = tmp(1) 1057 IF(var == val_exp) var = def_val 1058 ENDIF 1059 CALL bcast(var) 1060 1061 END SUBROUTINE restget_p_nogrid_r_scal 1062 1063 !! ============================================================================================================================= 1064 !! SUBROUTINE: restget_p_nogrid_i_scal 1065 !! 1066 !>\BRIEF Transform the data (integer scalar) from the restart file onto the model grid 1067 !! 1068 !! DESCRIPTION: 1069 !! \n 1070 !_ ============================================================================================================================== 1071 SUBROUTINE restget_p_nogrid_i_scal & 1072 (fid,vname_q,itau,def_beha,def_val,varint) 1073 ! 1074 IMPLICIT NONE 1075 !- 1076 INTEGER, INTENT(in) :: fid 1077 CHARACTER(LEN=*), INTENT(in) :: vname_q 1078 INTEGER, INTENT(in) :: itau 1079 LOGICAL, INTENT(in) :: def_beha 1080 REAL, INTENT(in) :: def_val 1081 INTEGER, INTENT(out) :: varint 1082 !------------------------- 1083 REAL :: tmp 1084 1085 CALL restget_p_nogrid_r_scal(fid, vname_q, itau, def_beha, def_val, tmp) 1086 varint = INT(tmp) 1087 END SUBROUTINE restget_p_nogrid_i_scal 1088 973 1089 974 1090 END MODULE ioipsl_para
Note: See TracChangeset
for help on using the changeset viewer.