Changeset 9987 for branches/UKMO/dev_r5518_obs_oper_update_icethick/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90
- Timestamp:
- 2018-07-23T11:33:03+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_obs_oper_update_icethick/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90
r7960 r9987 22 22 !! - ! 2013-04 (F. Roquet, G. Madec) add eos_rab, change bn2 computation and reorganize the module 23 23 !! - ! 2014-09 (F. Roquet) add TEOS-10, S-EOS, and modify EOS-80 24 !! - ! 2015-06 (P.A. Bouttier) eos_fzp functions changed to subroutines for AGRIF 24 25 !!---------------------------------------------------------------------- 25 26 … … 311 312 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Celcius] 312 313 ! ! 2 : salinity [psu] 313 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( 314 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( 314 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(inout) :: prd ! in situ density [-] 315 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(inout) :: prhop ! potential density (surface referenced) 315 316 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pdep ! depth [m] 316 317 ! … … 456 457 END SELECT 457 458 ! 459 CALL lbc_lnk( prd, 'T', 1.0_wp ) 460 ! 458 461 IF(ln_ctl) CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-pot: ', tab3d_2=prhop, clinfo2=' pot : ', ovlap=1, kdim=jpk ) 459 462 ! … … 901 904 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! pot. temperature and salinity [Celcius,psu] 902 905 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pab ! thermal/haline expansion coef. [Celcius-1,psu-1] 903 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( 906 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(inout) :: pn2 ! Brunt-Vaisala frequency squared [1/s^2] 904 907 ! 905 908 INTEGER :: ji, jj, jk ! dummy loop indices … … 991 994 992 995 993 FUNCTION eos_fzp_2d( psal, pdep ) RESULT( ptf)996 SUBROUTINE eos_fzp_2d( psal, ptf, pdep ) 994 997 !!---------------------------------------------------------------------- 995 998 !! *** ROUTINE eos_fzp *** … … 1005 1008 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: psal ! salinity [psu] 1006 1009 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ), OPTIONAL :: pdep ! depth [m] 1007 REAL(wp), DIMENSION(jpi,jpj) :: ptf! freezing temperature [Celcius]1010 REAL(wp), DIMENSION(jpi,jpj), INTENT(out ) :: ptf ! freezing temperature [Celcius] 1008 1011 ! 1009 1012 INTEGER :: ji, jj ! dummy loop indices … … 1017 1020 DO jj = 1, jpj 1018 1021 DO ji = 1, jpi 1019 zs= SQRT( ABS( psal(ji,jj) ) * r1_S0) ! square root salinity1022 zs= SQRT( ABS( psal(ji,jj) ) / 35.16504_wp ) ! square root salinity 1020 1023 ptf(ji,jj) = ((((1.46873e-03_wp*zs-9.64972e-03_wp)*zs+2.28348e-02_wp)*zs & 1021 1024 & - 3.12775e-02_wp)*zs+2.07679e-02_wp)*zs-5.87701e-02_wp … … 1038 1041 nstop = nstop + 1 1039 1042 ! 1040 END SELECT 1041 ! 1042 END FUNCTIONeos_fzp_2d1043 1044 FUNCTION eos_fzp_0d( psal, pdep ) RESULT( ptf)1043 END SELECT 1044 ! 1045 END SUBROUTINE eos_fzp_2d 1046 1047 SUBROUTINE eos_fzp_0d( psal, ptf, pdep ) 1045 1048 !!---------------------------------------------------------------------- 1046 1049 !! *** ROUTINE eos_fzp *** … … 1054 1057 !! Reference : UNESCO tech. papers in the marine science no. 28. 1978 1055 1058 !!---------------------------------------------------------------------- 1056 REAL(wp), INTENT(in ) :: psal! salinity [psu]1057 REAL(wp), INTENT(in ), OPTIONAL :: pdep! depth [m]1058 REAL(wp) :: ptf! freezing temperature [Celcius]1059 REAL(wp), INTENT(in ) :: psal ! salinity [psu] 1060 REAL(wp), INTENT(in ), OPTIONAL :: pdep ! depth [m] 1061 REAL(wp), INTENT(out) :: ptf ! freezing temperature [Celcius] 1059 1062 ! 1060 1063 REAL(wp) :: zs ! local scalars … … 1065 1068 CASE ( -1, 1 ) !== CT,SA (TEOS-10 formulation) ==! 1066 1069 ! 1067 zs = SQRT( ABS( psal ) * r1_S0) ! square root salinity1070 zs = SQRT( ABS( psal ) / 35.16504_wp ) ! square root salinity 1068 1071 ptf = ((((1.46873e-03_wp*zs-9.64972e-03_wp)*zs+2.28348e-02_wp)*zs & 1069 1072 & - 3.12775e-02_wp)*zs+2.07679e-02_wp)*zs-5.87701e-02_wp … … 1086 1089 END SELECT 1087 1090 ! 1088 END FUNCTIONeos_fzp_0d1091 END SUBROUTINE eos_fzp_0d 1089 1092 1090 1093 … … 1255 1258 WRITE(numout,*) ' model does not use Conservative Temperature' 1256 1259 ENDIF 1260 ENDIF 1261 ! 1262 ! Consistency check on ln_useCT and nn_eos 1263 IF ((nn_eos .EQ. -1) .AND. (.NOT. ln_useCT)) THEN 1264 CALL ctl_stop("ln_useCT should be set to True if using TEOS-10 (nn_eos=-1)") 1265 ELSE IF ((nn_eos .NE. -1) .AND. (ln_useCT)) THEN 1266 CALL ctl_stop("ln_useCT should be set to False if using TEOS-80 or simplified equation of state (nn_eos=0 or nn_eos=1)") 1257 1267 ENDIF 1258 1268 !
Note: See TracChangeset
for help on using the changeset viewer.