Changeset 4370 for LMDZ6/trunk/libf/phylmd/cpl_mod.F90
- Timestamp:
- Dec 6, 2022, 4:23:49 PM (17 months ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk
- Property svn:mergeinfo changed
/LMDZ6/branches/Ocean_skin merged: 4013,4020-4021,4024-4025,4368-4369
- Property svn:mergeinfo changed
-
LMDZ6/trunk/libf/phylmd/cpl_mod.F90
r4283 r4370 49 49 !$OMP THREADPRIVATE(cpl_snow,cpl_evap,cpl_tsol) 50 50 51 REAL, ALLOCATABLE, SAVE:: cpl_delta_sst(:), cpl_delta_sal(:) 52 !$OMP THREADPRIVATE(cpl_delta_sst, cpl_delta_sal) 51 REAL, ALLOCATABLE, SAVE:: cpl_delta_sst(:), cpl_delta_sal(:), cpl_dter(:), & 52 cpl_dser(:), cpl_dt_ds(:) 53 !$OMP THREADPRIVATE(cpl_delta_sst, cpl_delta_sal, cpl_dter, cpl_dser) 54 !$OMP THREADPRIVATE(cpl_dt_ds) 53 55 54 56 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_fder, cpl_albe, cpl_taux, cpl_tauy … … 96 98 !$OMP THREADPRIVATE(cpl_snow2D, cpl_evap2D, cpl_tsol2D) 97 99 98 REAL, ALLOCATABLE, SAVE:: cpl_delta_sst_2D(:,:), cpl_delta_sal_2D(:,:) 100 REAL, ALLOCATABLE, SAVE:: cpl_delta_sst_2D(:, :), cpl_delta_sal_2D(:, :), & 101 cpl_dter_2D(:, :), cpl_dser_2D(:, :), cpl_dt_ds_2D(:, :) 99 102 !$OMP THREADPRIVATE(cpl_delta_sst_2D, cpl_delta_sal_2D) 103 !$OMP THREADPRIVATE(cpl_dter_2D, cpl_dser_2D, cpl_dt_ds_2D) 100 104 101 105 REAL, ALLOCATABLE, DIMENSION(:,:,:), SAVE :: cpl_fder2D, cpl_albe2D … … 242 246 243 247 if (activate_ocean_skin == 2) then 244 ALLOCATE(cpl_delta_sst(klon), cpl_delta_sal(klon), stat = error) 248 ALLOCATE(cpl_delta_sst(klon), cpl_delta_sal(klon), cpl_dter(klon), & 249 cpl_dser(klon), cpl_dt_ds(klon), stat = error) 245 250 sum_error = sum_error + error 246 251 end if … … 654 659 precip_rain, precip_snow, evap, tsurf, fder, albsol, taux, tauy, windsp,& 655 660 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol, delta_sst, & 656 delta_sal )661 delta_sal, dTer, dSer, dt_ds) 657 662 658 663 ! This subroutine cumulates some fields for each time-step during … … 687 692 real, intent(in):: delta_sal(:) ! (knon) 688 693 ! Ocean-air interface salinity minus bulk salinity, in ppt. 694 695 REAL, intent(in):: dter(:) ! (knon) 696 ! Temperature variation in the diffusive microlayer, that is 697 ! ocean-air interface temperature minus subskin temperature. In 698 ! K. 699 700 REAL, intent(in):: dser(:) ! (knon) 701 ! Salinity variation in the diffusive microlayer, that is 702 ! ocean-air interface salinity minus subskin salinity. In ppt. 703 704 real, intent(in):: dt_ds(:) ! (knon) 705 ! (tks / tkt) * dTer, in K 689 706 690 707 ! Local variables … … 726 743 cpl_delta_sst = 0. 727 744 cpl_delta_sal = 0. 745 cpl_dter = 0. 746 cpl_dser = 0. 747 cpl_dt_ds = 0. 728 748 end if 729 749 ENDIF … … 772 792 cpl_delta_sst(ig) = cpl_delta_sst(ig) + delta_sst(ig) / REAL(nexca) 773 793 cpl_delta_sal(ig) = cpl_delta_sal(ig) + delta_sal(ig) / REAL(nexca) 794 cpl_dter(ig) = cpl_dter(ig) + dter(ig) / REAL(nexca) 795 cpl_dser(ig) = cpl_dser(ig) + dser(ig) / REAL(nexca) 796 cpl_dt_ds(ig) = cpl_dt_ds(ig) + dt_ds(ig) / REAL(nexca) 774 797 end if 775 798 ENDDO … … 821 844 if (activate_ocean_skin == 2) then 822 845 ALLOCATE(cpl_delta_sst_2D(nbp_lon, jj_nb), & 823 cpl_delta_sal_2D(nbp_lon, jj_nb), stat = error) 846 cpl_delta_sal_2D(nbp_lon, jj_nb), & 847 cpl_dter_2D(nbp_lon, jj_nb), cpl_dser_2D(nbp_lon, jj_nb), & 848 cpl_dt_ds_2D(nbp_lon, jj_nb), stat = error) 824 849 sum_error = sum_error + error 825 850 end if … … 882 907 CALL gath2cpl(cpl_delta_sst, cpl_delta_sst_2D, knon, knindex) 883 908 CALL gath2cpl(cpl_delta_sal, cpl_delta_sal_2D, knon, knindex) 909 CALL gath2cpl(cpl_dter, cpl_dter_2D, knon, knindex) 910 CALL gath2cpl(cpl_dser, cpl_dser_2D, knon, knindex) 911 CALL gath2cpl(cpl_dt_ds, cpl_dt_ds_2D, knon, knindex) 884 912 end if 885 913 ENDIF … … 1283 1311 tab_flds(:, :, ids_delta_sst) = cpl_delta_sst_2D 1284 1312 tab_flds(:, :, ids_delta_sal) = cpl_delta_sal_2D 1313 tab_flds(:, :, ids_dter) = cpl_dter_2D 1314 tab_flds(:, :, ids_dser) = cpl_dser_2D 1315 tab_flds(:, :, ids_dt_ds) = cpl_dt_ds_2D 1285 1316 end if 1286 1317 … … 1522 1553 ENDIF 1523 1554 1524 if (activate_ocean_skin == 2) deallocate(cpl_delta_sst_2d, cpl_delta_sal_2d) 1555 if (activate_ocean_skin == 2) deallocate(cpl_delta_sst_2d, & 1556 cpl_delta_sal_2d, cpl_dter_2d, cpl_dser_2d, cpl_dt_ds_2d) 1525 1557 1526 1558 IF (sum_error /= 0) THEN
Note: See TracChangeset
for help on using the changeset viewer.