Changeset 1274
- Timestamp:
- Dec 4, 2009, 3:26:20 PM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/cpl_mod.F90
r1227 r1274 47 47 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_snow, cpl_evap, cpl_tsol 48 48 !$OMP THREADPRIVATE(cpl_snow,cpl_evap,cpl_tsol) 49 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_fder, cpl_albe, cpl_taux 50 !$OMP THREADPRIVATE(cpl_fder,cpl_albe,cpl_taux )49 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_fder, cpl_albe, cpl_taux, cpl_tauy 50 !$OMP THREADPRIVATE(cpl_fder,cpl_albe,cpl_taux,cpl_tauy) 51 51 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_windsp 52 52 !$OMP THREADPRIVATE(cpl_windsp) 53 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_taumod 54 !$OMP THREADPRIVATE(cpl_taumod) 53 55 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_atm_co2 54 56 !$OMP THREADPRIVATE(cpl_atm_co2) 55 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_tauy56 !$OMP THREADPRIVATE(cpl_tauy)57 57 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_rriv2D, cpl_rcoa2D, cpl_rlic2D 58 58 !$OMP THREADPRIVATE(cpl_rriv2D,cpl_rcoa2D,cpl_rlic2D) … … 85 85 REAL, ALLOCATABLE, DIMENSION(:,:,:), SAVE :: cpl_taux2D, cpl_tauy2D 86 86 !$OMP THREADPRIVATE(cpl_taux2D, cpl_tauy2D) 87 REAL, ALLOCATABLE, DIMENSION(:,:,:), SAVE :: cpl_taumod2D 88 !$OMP THREADPRIVATE(cpl_taumod2D) 87 89 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_windsp2D 88 90 !$OMP THREADPRIVATE(cpl_windsp2D) … … 161 163 ALLOCATE(cpl_taux(klon,2), stat = error) 162 164 sum_error = sum_error + error 165 ALLOCATE(cpl_tauy(klon,2), stat = error) 166 sum_error = sum_error + error 163 167 ALLOCATE(cpl_windsp(klon,2), stat = error) 164 168 sum_error = sum_error + error 165 ALLOCATE(cpl_tau y(klon,2), stat = error)169 ALLOCATE(cpl_taumod(klon,2), stat = error) 166 170 sum_error = sum_error + error 167 171 ALLOCATE(cpl_rriv2D(iim,jj_nb), stat=error) … … 213 217 idtime = INT(dtime) 214 218 #ifdef CPP_COUPLE 215 !$OMP MASTER216 219 CALL inicma 217 !$OMP END MASTER218 220 #endif 219 221 … … 317 319 is_modified=.FALSE. 318 320 319 ! Check if right moment to rece vie from coupler321 ! Check if right moment to receive from coupler 320 322 IF (MOD(itime, nexca) == 1) THEN 321 323 is_modified=.TRUE. … … 571 573 cpl_tauy(1:knon,cpl_index) = 0.0 572 574 cpl_windsp(1:knon,cpl_index) = 0.0 575 cpl_taumod(1:knon,cpl_index) = 0.0 573 576 IF (carbon_cycle_cpl) cpl_atm_co2(1:knon,cpl_index) = 0.0 574 577 ENDIF … … 600 603 tauy(ig) / FLOAT(nexca) 601 604 cpl_windsp(ig,cpl_index) = cpl_windsp(ig,cpl_index) + & 602 windsp(ig) / FLOAT(nexca) 605 windsp(ig) / FLOAT(nexca) 606 cpl_taumod(ig,cpl_index) = cpl_taumod(ig,cpl_index) + & 607 SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / FLOAT (nexca) 603 608 604 609 IF (carbon_cycle_cpl) THEN … … 639 644 sum_error = sum_error + error 640 645 ALLOCATE(cpl_windsp2D(iim,jj_nb), stat=error) 646 sum_error = sum_error + error 647 ALLOCATE(cpl_taumod2D(iim,jj_nb,2), stat=error) 641 648 sum_error = sum_error + error 642 649 … … 687 694 688 695 CALL gath2cpl(cpl_windsp(:,cpl_index), cpl_windsp2D(:,:), & 696 knon, knindex) 697 698 CALL gath2cpl(cpl_taumod(:,cpl_index), cpl_taumod2D(:,:,cpl_index), & 689 699 knon, knindex) 690 700 … … 758 768 cpl_taux(1:knon,cpl_index) = 0.0 759 769 cpl_tauy(1:knon,cpl_index) = 0.0 770 cpl_taumod(1:knon,cpl_index) = 0.0 760 771 ENDIF 761 772 … … 784 795 taux(ig) / FLOAT(nexca) 785 796 cpl_tauy(ig,cpl_index) = cpl_tauy(ig,cpl_index) + & 786 tauy(ig) / FLOAT(nexca) 797 tauy(ig) / FLOAT(nexca) 798 cpl_taumod(ig,cpl_index) = cpl_taumod(ig,cpl_index) + & 799 SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / FLOAT(nexca) 787 800 ENDDO 788 801 … … 816 829 sum_error = sum_error + error 817 830 ALLOCATE(cpl_windsp2D(iim,jj_nb), stat=error) 831 sum_error = sum_error + error 832 ALLOCATE(cpl_taumod2D(iim,jj_nb,2), stat=error) 818 833 sum_error = sum_error + error 819 834 … … 864 879 865 880 CALL gath2cpl(cpl_tauy(:,cpl_index), cpl_tauy2D(:,:,cpl_index), & 881 knon, knindex) 882 883 CALL gath2cpl(cpl_taumod(:,cpl_index), cpl_taumod2D(:,:,cpl_index), & 866 884 knon, knindex) 867 885 … … 1129 1147 tab_flds(:,:,ids_totsno) = 0.0 1130 1148 tab_flds(:,:,ids_toteva) = 0.0 1149 tab_flds(:,:,ids_taumod) = 0.0 1131 1150 1132 1151 tmp_taux(:,:) = 0.0 … … 1138 1157 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1139 1158 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1140 1159 1141 1160 tab_flds(:,:,ids_shftot) = cpl_sols2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1142 1161 cpl_sols2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) … … 1149 1168 tab_flds(:,:,ids_toteva) = cpl_evap2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1150 1169 cpl_evap2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1170 tab_flds(:,:,ids_taumod) = cpl_taumod2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1171 cpl_taumod2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1172 1151 1173 ENDWHERE 1152 1174 … … 1246 1268 DEALLOCATE(cpl_evap2D, cpl_tsol2D, cpl_fder2D, cpl_albe2D, stat=error ) 1247 1269 sum_error = sum_error + error 1248 DEALLOCATE(cpl_taux2D, cpl_tauy2D, cpl_windsp2D, stat=error )1270 DEALLOCATE(cpl_taux2D, cpl_tauy2D, cpl_windsp2D, cpl_taumod2D, stat=error ) 1249 1271 sum_error = sum_error + error 1250 1272 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/oasis.F90
r1249 r1274 48 48 INTEGER, PARAMETER :: ids_rivflu = 23 49 49 INTEGER, PARAMETER :: ids_atmco2 = 24 50 INTEGER, PARAMETER :: maxsend = 24 ! Maximum number of fields to send 50 INTEGER, PARAMETER :: ids_taumod = 25 51 INTEGER, PARAMETER :: maxsend = 25 ! Maximum number of fields to send 51 52 52 53 ! Id for fields received from ocean … … 156 157 infosend(ids_calvin)%action = .TRUE. ; infosend(ids_calvin)%name = 'COCALVIN' 157 158 158 159 159 IF (version_ocean=='nemo') THEN 160 160 infosend(ids_shftot)%action = .TRUE. ; infosend(ids_shftot)%name = 'COQSRMIX' … … 165 165 infosend(ids_icevap)%action = .TRUE. ; infosend(ids_icevap)%name = 'COICEVAP' 166 166 infosend(ids_liqrun)%action = .TRUE. ; infosend(ids_liqrun)%name = 'COLIQRUN' 167 infosend(ids_taumod)%action = .TRUE. ; infosend(ids_taumod)%name = 'COTAUMOD' 167 168 IF (carbon_cycle_cpl) THEN 168 169 infosend(ids_atmco2)%action = .TRUE. ; infosend(ids_atmco2)%name = 'COATMCO2'
Note: See TracChangeset
for help on using the changeset viewer.